如何在每个配置的基础上添加程序集引用

时间:2011-10-05 09:48:05

标签: c# .net visual-studio visual-studio-2010 windows-phone-7

我目前正在寻找将一些仅调试代码添加到Windows Phone项目中。这个调试代码将拖入一些调试类库引用(nunit helpers)和一些WCF服务客户端引用,我真的希望在发布版本中没有这些引用。

任何人都可以建议我可以添加一个Assembly-Reference来调试,但是没有它在发布中出现吗?

我在Connect上看过这个 - https://connect.microsoft.com/VisualStudio/feedback/details/106011/allow-adding-assembly-references-on-a-per-configuration-basis-debug-release - 但它被标记为“推迟”

Visual Studio的UserVoice上有一个请求,但在Closed标记为Won't Fixhttps://visualstudio.uservoice.com/forums/121579-visual-studio-ide/suggestions/2062487-allow-assembly-references-to-switch-based-on-confi

2 个答案:

答案 0 :(得分:13)

使用MSBuild Condition的两种情况,您曾经配置csproj并忘记了这一点。

首先:使用Condition

  1. 创建新项目DebugOnlyHelpers
  2. 在此项目中引用所有特定于调试的帮助程序
  3. csproj文件中指定需要过滤引用的条件:

  4. <ProjectReference 
                Include="DebugOnlyHelpers.csproj"
                Condition=" '$(Configuration)' == 'DEBUG' "
    

    第二:ConditionChoose/When一起使用:

    <Choose>
        <When Condition=" '$(Configuration)'=='DEBUG' ">
            <ItemGroup>
                 <Reference Include="NUnit.dll" />
                 <Reference Include="Standard.dll" />
             </ItemGroup>
        </When>
        <Otherwise>
             <ItemGroup>
                 <Reference Include="Standard.dll" />
             </ItemGroup>
        </Otherwise>
    </Choose>
    

答案 1 :(得分:-5)

不幸的是现在没办法做到这一点。您必须切换到debug并删除引用,然后在返回发行版时将其添加回来。