使用VS2017创建.NET Standard 2.0类库模板时源文件未复制问题
我之前也踩过这个坑,VS2017自带的导出模板功能处理.NET Standard类库时,确实会出现源文件不被复制的情况。下面是我亲测有效的解决步骤:
找到导出的模板文件
首先定位到VS存储自定义模板的目录:%USERPROFILE%\Documents\Visual Studio 2017\Templates\ProjectTemplates,找到你刚才导出的模板压缩包(后缀为.zip),将它解压到一个临时文件夹中。修改模板配置文件
打开解压后的[你的模板名].vstemplate文件,找到<TemplateContent>节点下的<Project>标签。在这个标签内部,添加对应.cs文件的引用,比如你的类库默认有Class1.cs,就加上:<ProjectItem ReplaceParameters="true">Class1.cs</ProjectItem>如果有多个源文件,就为每个文件添加一行这样的配置。
ReplaceParameters="true"是为了支持模板参数替换(比如新建项目时自动替换命名空间),建议保留。确认项目文件的包含规则
打开解压后的.csproj文件,检查里面是否包含了你的.cs文件的编译配置,比如:<Compile Include="Class1.cs" />如果没有这行,手动添加进去,确保项目能识别到这些源文件。
重新打包并替换模板
将修改后的所有文件重新打包成.zip压缩包(注意:压缩时要选中模板文件夹内的所有文件,而不是外层文件夹),然后把这个新的压缩包替换掉原来目录里的旧模板文件。重启Visual Studio
关闭并重新打开VS2017,现在用这个自定义模板新建项目,就能看到.cs源文件被正确复制到新项目中了。
另外补充个小提示:导出模板时尽量勾选“包含项目中的所有文件”选项,虽然有时候这个选项不生效,但能减少后续手动配置的工作量。
内容的提问来源于stack exchange,提问作者Pedro

