c# - VS2015 project.json 编译排除

标签 c# visual-studio-2013 visual-studio-2015 project.json

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

相关文章:

即使 WITH_CUDA=ON 在 CMake 中,OpenCV 也不会使用 CUDA 构建

wpf - Visual Studio Windows 模拟器

.net - 如何在 VS2017/2015 中打开 .xproj 文件

c# - 如何在类/独立线程 ASP.Net Core 中使用 ApplicationDbContext

c# - log4net:动态创建记录器,我应该担心什么吗?

c# - Azure 模拟器使用 MVC 应用程序时速度缓慢,可能需要 120 秒才能注册点击或 JSON 调用

c# - 如何从 Visual Studio 2013 中的 Windows Phone 8 应用程序创建库文件?

c# - 当我在我的 asp.net mvc 项目上以 Debug模式启动浏览器时,我可以告诉 VS2013 将其直接导航到站点的某个部分吗?

visual-studio-2015 - 无法在 Visual Studio 2015 中签署 C++/CLI 程序集

c# - 找不到 Web API 路由?