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

时间:2010-03-03 10:23:47

标签: .net visual-studio-2008 msbuild build-process

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

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

1 个答案:

答案 0 :(得分:12)

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

<ItemGroup>
    <Compile Include="Helper.cs" />
    <Compile Include="Properties\AssemblyInfo.cs" />
</ItemGroup>

您可以做的是设置新的项目配置(构建菜单, Configuration Manager ,从 Active中选择 New 解决方案配置下拉列表),然后手动将ItemGroup节点更改为:

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

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

#if MYDEBUGSYMBOL

并且在底部有

#endif

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

我可能会坚持第一种方法。