根据VS2008中的内置配置排除整个文件

Bob*_*bby 8 .net msbuild build-process visual-studio-2008

我的项目有三种不同的配置,这三种都不需要将所有文件都构建到应用程序中.实际上我更喜欢我是否可以从构建中排除这些文件,这将使我的应用程序更轻量级.

我正在寻找的是#if MYCONFIG#if DEBUG声明,但文件.我已经读过这可以通过手动编辑csproj文件来完成,但我再也找不到了...还有其他方法吗?

slu*_*ter 12

有两种不同的方法:在csproj文件中,您将看到如下所示的部分:

<ItemGroup>
    <Compile Include="Helper.cs" />
    <Compile Include="Properties\AssemblyInfo.cs" />
</ItemGroup>
Run Code Online (Sandbox Code Playgroud)

您可以做的是设置一个新的项目配置(Build菜单,Configuration Manager,从Active solution configuration下拉列表中选择New),然后手动将ItemGroup节点更改为:

<ItemGroup Condition=" '$(Configuration)' == 'MyNewConfiguration' ">
    <Compile Include="Helper.cs" />
    <Compile Include="Properties\AssemblyInfo.cs" />
</ItemGroup>
Run Code Online (Sandbox Code Playgroud)

正如您在问题中所提到的,第二种方法是使用条件调试符号.在文件的顶部,有声明

#if MYDEBUGSYMBOL
Run Code Online (Sandbox Code Playgroud)

在底部有

#endif
Run Code Online (Sandbox Code Playgroud)

然后你可以定义调试符号; 右键单击项目文件,选择" 属性",转到" 构建"选项卡,然后在" 条件编译符号"文本框中输入调试符号.

我可能会坚持使用第一种方法.