【问题标题】:Exclude whole files based on configuration from build in VS2008在 VS2008 中根据配置排除整个文件
【发布时间】:2011-01-23 03:26:48
【问题描述】:

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

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

【问题讨论】:

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


    【解决方案1】:

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

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

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

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

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

    #if MYDEBUGSYMBOL
    

    在底部有

    #endif
    

    然后你可以定义调试符号;右击你的项目文件,选择Properties,进入Build选项卡,在Conditional compilation symbols文本框中输入调试符号。 p>

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

    【讨论】:

    • C 项目的旧 VS2008 项目文件是否也可以这样做?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多