You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将无csproj的文件夹结构转为支持VS与CLI的VSIX/VS模板?

全栈项目模板制作方案(支持CLI与Visual Studio 2022)

核心需求

将包含以下结构的目录转为通用模板:

App
├── web(Angular/React等前端应用,无项目/解决方案文件)
├── api(多项目结构的.NET 4.8 Web API解决方案)

要求:

  • 支持通过dotnet new app -n MyApp命令生成项目
  • 支持在Visual Studio 2022「新建项目」界面中选择使用
  • 生成时自动替换所有文件夹名、文件名、文件内容中的MyCustomName为用户指定名称

步骤1:准备模板源文件与配置

  1. 整理模板源目录结构,确保所有需要替换的占位符统一为MyCustomName:
MyTemplateSource
├── content
│   ├── App
│   │   ├── web  # 放入你的前端应用文件,保留原有目录结构
│   │   ├── api  # 放入你的.NET 4.8 Web API多项目解决方案,保留原有结构
├── template.json
  1. 创建template.json配置文件(位于MyTemplateSource根目录):
{
  "$schema": "http://json.schemastore.org/template",
  "author": "你的名称",
  "classifications": ["Web", "Full Stack"],
  "name": "全栈应用模板(Web+API)",
  "shortName": "app",
  "tags": {
    "language": "C#",
    "type": "project"
  },
  "sourceName": "MyCustomName",
  "preferNameDirectory": true,
  "symbols": {
    "name": {
      "type": "parameter",
      "description": "项目名称",
      "defaultValue": "MyCustomName"
    }
  }
}
  • sourceName:指定全局替换的占位符,所有匹配的文件名、文件夹名、文件内容都会被替换
  • shortName:对应CLI命令dotnet new app中的app标识
  • classifications:决定模板在Visual Studio分类列表中的位置

步骤2:手动打包为NuGet包(无需csproj)

跳过dotnet pack,用NuGet CLI直接打包:

  1. 下载NuGet CLI并添加到系统PATH
  2. 在MyTemplateSource目录下创建FullStackTemplate.nuspec文件:
<?xml version="1.0" encoding="utf-8"?>
<package xmlns="http://schemas.microsoft.com/packaging/2012/06/nuspec.xsd">
  <metadata>
    <id>FullStackAppTemplate</id>
    <version>1.0.0</version>
    <authors>你的名称</authors>
    <description>包含前端Web应用与.NET 4.8 Web API的全栈项目模板</description>
    <tags>dotnet-template web api fullstack</tags>
  </metadata>
  <files>
    <file src="content/**/*" target="content" />
    <file src="template.json" target="template.json" />
  </files>
</package>
  1. 执行打包命令:
nuget pack FullStackTemplate.nuspec

执行完成后会生成FullStackAppTemplate.1.0.0.nupkg文件


步骤3:安装并验证模板

  1. 安装模板:
dotnet new install ./FullStackAppTemplate.1.0.0.nupkg
  1. 验证CLI可用性:
dotnet new app -n MyNewApp

生成的项目会自动替换所有MyCustomName为MyNewApp,目录结构完全保留
3. 验证Visual Studio 2022可用性:

  • 打开Visual Studio 2022,点击「File > New > Project...」
  • 在搜索框输入模板名称「全栈应用模板(Web+API)」或短名「app」,即可找到该模板
  • 输入项目名称后生成,替换规则与CLI完全一致

注意事项

  • 确保api目录下的.sln和.csproj文件中所有需要替换的名称都使用MyCustomName作为占位符
  • 前端web目录中若有需要替换的变量,同样统一使用MyCustomName
  • 后续更新模板时,修改源文件后重新打包,再执行dotnet new update或重新安装即可

内容的提问来源于stack exchange,提问作者Bardicer

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.12 09:13:15