Visual Studio中.NET模板生成额外sln/slnx文件的解决方法
解决Visual Studio实例化.NET模板时自动生成额外解决方案文件的问题
以下是具体的解决步骤,针对.NET模板配置进行调整:
修改template.json配置,指定主输出解决方案文件
在模板根目录的template.json中,添加primaryOutputs数组,明确指定你提供的解决方案文件作为模板的主输出项,让Visual Studio优先识别并使用它:"primaryOutputs": [ { "path": "YourCustomSolution.sln" } ]注意替换
YourCustomSolution.sln为你实际的解决方案文件名。禁用自动生成解决方案的参数
在template.json的symbols节点中添加如下配置,强制关闭Visual Studio自动创建新解决方案的逻辑:"symbols": { "CreateSolution": { "type": "parameter", "datatype": "bool", "defaultValue": false, "isHidden": true } }确认解决方案文件被正确包含在模板源中
检查template.json的sources配置,确保你的解决方案文件没有被排除,比如:"sources": [ { "include": [ "**/*", "YourCustomSolution.sln" ] } ]针对兼容VS的.vstemplate文件(若使用)
如果你的模板同时包含旧版.vstemplate文件,需做以下调整:- 添加
<CreateNewFolder>false</CreateNewFolder>,避免创建新文件夹导致路径混乱 - 在
<TemplateContent>中直接指定你的解决方案文件作为项目项:
确保移除任何会触发自动生成解决方案的<TemplateContent> <Project File="YourCustomSolution.sln" TargetFileName="YourCustomSolution.sln" ReplaceParameters="true" /> </TemplateContent><Solution>标签。
- 添加
完成上述配置后,重新打包你的模板(执行dotnet pack),再安装到Visual Studio中测试,即可实现实例化时仅使用你提供的解决方案文件,不再生成额外的sln/slnx文件。
内容的提问来源于stack exchange,提问作者Xorcist




