VS2015项目.json编译排除

3
在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文件?

2个回答

2
在源资源管理器中右键单击.cs文件,以显示属性窗格。在属性窗格中,将“生成操作”更改为“无”。该文件不应被编译。

enter image description here


2
尝试使用以下命令:buildOptions -> compile -> exclude 例如,从我的project.json文件中,如何排除整个lib文件夹不参与编译:
"buildOptions": {
  "compile": {
    "exclude": [ "lib" ]
  }
}

另一个来自旧文档的例子:
"buildOptions": {
    "compile": ["*.cs"],
    "exclude": ["buggy/**/*.cs", "foo/**/*.*"],
    "publishExclude": ["something/**/*.*"],
    "resource": ["embed/**/*.*"]
}


想了解更多信息,请参考project.json参考文档

注意

.NET Core工具将在未来版本中从project.json转移到基于MSBuild的项目。

建议新的.NET Core项目仍使用project.json文件,因为当工具发布时,将有一条路径可以将您的项目转换为MSBuild。

有关更多信息,请参见.NET博客上的Changes to project.json文章和Using MSBuild to build .NET Core projects主题。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接