繁体   English   中英

VS2015 project.json编译排除

[英]VS2015 project.json compile exclusion

在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?

右键单击Source Explorer中的.cs文件以显示“属性”窗格。 在属性窗格中,将“生成”操作更改为“无”。 该文件不应编译。

在此输入图像描述

尝试: 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的项目。

建议仍然将project.json文件用于新的.NET Core项目,因为在发布工具时会有一个将项目转换为MSBuild的路径。

有关更多信息,请参阅.NET博客上的project.json更改帖子和使用MSBuild构建.NET Core项目主题。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM