我的项目有三种不同的配置,这三种配置都不需要将所有文件都构建到应用程序中。实际上我更喜欢我可以从构建中排除这些文件,这会使我的应用程序更轻量级。
我正在寻找的是#if MYCONFIG
或#if DEBUG
语句,但是文件。我已经读过这可以通过手动编辑csproj文件来完成,但我再也找不到了...还有其他方法吗?
答案 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 选项卡,然后在条件编译符号文本框中输入调试符号。
我可能会坚持第一种方法。