2016-12-14 55 views
3

在Visual Studio 2013中,我能够通过使用编译器常量和修改项目的.csproj文件来排除一些.cs文件。VS2015 project.json编译排除

事情是这样的:

- 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中的“编译”配置变量进行一些操作。我需要添加什么来使编译器忽略构建时的myfile.cs?

回答

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核心工具将会从project.json移动到基于MSBuild的项目在未来的版本。

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

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

2

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

enter image description here