在 Visual Studio 2013 中,我能够通过使用编译器常量并修改项目的 .csproj 文件来排除某些 .cs 文件的编译。
像这样:
-- 我的项目.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 中的“编译”配置变量做一些事情。我需要添加什么才能使编译器在构建时忽略 myfile.cs?
最佳答案
尝试: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 的项目。
建议仍然对新的 .NET Core 项目使用 project.json 文件,因为在工具发布时会有一个将项目转换为 MSBuild 的路径。
有关详细信息,请参阅 Changes to project.json在 .NET 博客和 Using MSBuild to build .NET Core projects 上发帖主题。
关于c# - VS2015 project.json 编译排除,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41138901/