在Visual Studio 2013中,我能够通过使用编译器常量和修改项目的.csproj文件来排除某些.cs文件。
这样的事情:
- myproject.csproj
<PropertyGroup>
...
<DefineConstants>MY_COMPILER_CONSTANT</DevineConstants>
...
</PropertyGroup>
<ItemGroup>
...
<Compile Include="myproject\myfile.cs" Condition="'$(Configuration)' != 'MY_COMPILER_CONSTANT'" />
...
</ItemGroup>
然后我的项目完全排除了这个myfile.cs被编译,允许我避免一些讨厌的错误。
但现在我正在尝试将我的项目环境迁移到Visual Studio 2015。
我可以很容易地弄清楚如何将编译器常量添加到VS2015项目中,但仍然试图弄清楚如何从编译中排除文件。
我的project.json目前看起来像这样:
{
"frameworks": {
"net451": {
"dependencies": { }
}
},
"dependencies": {
...
},
"buildOptions": {
"define": [ "MY_COMPILER_CONSTANT" ]
}
}
添加文件进行编译似乎很简单。我认为它必须对buildOptions中的“compile”配置变量做一些事情。我需要添加什么才能使编译器在构建时忽略myfile.cs?
答案 0 :(得分:2)
答案 1 :(得分:2)
尝试:buildOptions -> compile -> exclude
例如 - 来自我的project.json
- 如何从编译中排除整个lib
文件夹:
"buildOptions": {
"compile": {
"exclude": [ "lib" ]
}
}
或来自old docs的其他示例:
"buildOptions": {
"compile": ["*.cs"],
"exclude": ["buggy/**/*.cs", "foo/**/*.*"],
"publishExclude": ["something/**/*.*"],
"resource": ["embed/**/*.*"]
}
有关详细信息,请查看project.json reference。
注意强>
.NET Core工具将在未来版本中从project.json转移到基于MSBuild的项目。
建议仍然将project.json文件用于新的.NET Core项目,因为在发布工具时会有一个将项目转换为MSBuild的路径。
有关详细信息,请参阅.NET博客上的Changes to project.json帖子和Using MSBuild to build .NET Core projects主题。