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

如何创建含外部共享项目的多项目Dotnet CLI模板?

问题解答

需求可行性

不可行。Dotnet CLI模板系统的核心约束是:所有属于模板的文件必须位于模板根目录(或其子目录)内,不允许引用模板目录外的文件路径,这就是你遇到[Error][MV012]错误的直接原因。

调整方案(按场景选择)

方案1:符号链接复用共享文件(适合非类库的共享模板资源)

通过操作系统的符号链接(软链接),在每个模板目录中创建指向共享项目的链接,既保持共享项目只存一份,又满足模板系统的路径要求。

  1. 调整文件夹结构:
    Templates/
    ├── Shared/
    │   ├── SharedProject1/
    │   └── SharedProject2/
    ├── Template1/
    │   ├── .template.config/
    │   ├── SharedProject1 -> ../Shared/SharedProject1
    │   └── SharedProject2 -> ../Shared/SharedProject2
    └── Template2/
        ├── .template.config/
        ├── SharedProject1 -> ../Shared/SharedProject1
        └── SharedProject2 -> ../Shared/SharedProject2
    
  2. 创建符号链接的命令:
    • Windows(需管理员权限):
      mklink /D Templates\Template1\SharedProject1 Templates\Shared\SharedProject1
      mklink /D Templates\Template1\SharedProject2 Templates\Shared\SharedProject2
      
    • Linux/macOS:
      ln -s ../Shared/SharedProject1 Templates/Template1/SharedProject1
      ln -s ../Shared/SharedProject2 Templates/Template1/SharedProject2
      
  3. 安装模板时,系统会自动解析符号链接,将共享项目的内容纳入模板,无需重复复制文件。

方案2:独立共享模板+模板依赖(适合可独立复用的项目模块)

把共享项目打包成独立的Dotnet模板,让Template1和Template2通过模板依赖机制自动引用它。

  1. 为SharedProject1、2创建独立模板:
    • 在Shared目录下添加.template.config/template.json,配置为可安装的模板
    • 执行dotnet new install ./Shared/ --force安装共享模板
  2. 在Template1和Template2的template.json中添加依赖配置:
    "dependencies": {
      "SharedTemplates": {
        "type": "template",
        "version": "[1.0.0, 2.0.0)"
      }
    }
    
  3. 当用户安装或使用Template1/Template2时,系统会自动确保共享模板已安装,并将其内容整合到生成的项目中。

方案3:NuGet包复用(适合类库型共享项目)

如果SharedProject是可编译的类库,直接打包成NuGet包,在Template1和Template2的项目文件中通过NuGet引用,彻底避免文件复制。

  1. 将SharedProject1、2打包为NuGet包(可推送到私有源或本地源)
  2. 在Template1/Template2的项目文件(如.csproj)中添加包引用:
    <ItemGroup>
      <PackageReference Include="SharedProject1" Version="1.0.0" />
      <PackageReference Include="SharedProject2" Version="1.0.0" />
    </ItemGroup>
    
  3. 模板生成项目时,会自动通过NuGet还原共享类库,实现代码复用。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.30 07:27:43