You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多
文档控制台
免费开始使用

Visual Studio中.NET模板生成额外sln/slnx文件的解决方法

解决Visual Studio实例化.NET模板时自动生成额外解决方案文件的问题

以下是具体的解决步骤,针对.NET模板配置进行调整:

  • 修改template.json配置,指定主输出解决方案文件
    在模板根目录的template.json中,添加primaryOutputs数组,明确指定你提供的解决方案文件作为模板的主输出项,让Visual Studio优先识别并使用它:

    "primaryOutputs": [
      { "path": "YourCustomSolution.sln" }
    ]
    

    注意替换YourCustomSolution.sln为你实际的解决方案文件名。

  • 禁用自动生成解决方案的参数
    template.jsonsymbols节点中添加如下配置,强制关闭Visual Studio自动创建新解决方案的逻辑:

    "symbols": {
      "CreateSolution": {
        "type": "parameter",
        "datatype": "bool",
        "defaultValue": false,
        "isHidden": true
      }
    }
    
  • 确认解决方案文件被正确包含在模板源中
    检查template.jsonsources配置,确保你的解决方案文件没有被排除,比如:

    "sources": [
      {
        "include": [
          "**/*",
          "YourCustomSolution.sln"
        ]
      }
    ]
    
  • 针对兼容VS的.vstemplate文件(若使用)
    如果你的模板同时包含旧版.vstemplate文件,需做以下调整:

    1. 添加<CreateNewFolder>false</CreateNewFolder>,避免创建新文件夹导致路径混乱
    2. <TemplateContent>中直接指定你的解决方案文件作为项目项:
      <TemplateContent>
        <Project File="YourCustomSolution.sln" TargetFileName="YourCustomSolution.sln" ReplaceParameters="true" />
      </TemplateContent>
      
      确保移除任何会触发自动生成解决方案的<Solution>标签。

完成上述配置后,重新打包你的模板(执行dotnet pack),再安装到Visual Studio中测试,即可实现实例化时仅使用你提供的解决方案文件,不再生成额外的sln/slnx文件。

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

火山引擎 最新活动