如何以每个配置为基础添加程序集引用

本文关键字:为基础 添加 程序集 引用 配置 | 更新日期: 2023-09-27 18:10:33

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

谁能建议任何方式,我可以添加一个程序集引用调试,但不让它出现在发布?

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

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

如何以每个配置为基础添加程序集引用

这两种情况下使用MSBuild Condition,你曾经配置过csproj,忘记这个

第一个:使用Condition

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

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

Second:使用Condition和Choose/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>

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