如何在每个配置的基础上添加汇编引用

问题描述:

我目前正在寻找添加一些仅调试代码到Windows Phone项目。这个调试代码会拖动一些调试类库引用(nunit助手)和一些WCF服务客户端引用,并且我真的很想在发布版本中没有引用这些引用。如何在每个配置的基础上添加汇编引用

任何人都可以提出任何方式,我可以添加一个大会参考调试,但没有出现在发布?

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

有一个关于Visual Studio的UserVoice的请求,但被标记为Closed为​​这里:https://visualstudio.uservoice.com/forums/121579-visual-studio-ide/suggestions/2062487-allow-assembly-references-to-switch-based-on-confi

+0

哦,不错的问题。这可能与一些MSBuild欺骗,也许? –

+0

我想你可能需要有两个项目文件,不幸的。 – Ray

这两种情况下使用MSBuild Condition,你曾经配置csproj忘掉这一点。

第一:使用Condition

  1. 创建新项目DebugOnlyHelpers
  2. 参考在这个项目
  3. 所有特定调试,佣工指定csproj文件中的条件,其中需要过滤的引用:

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

二:Choose/When一起使用Condition

<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> 
+0

感谢您的支持 - +1添加 - 我正在测试,希望能够回来剔除它:) – Stuart

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

+0

当然有。 –

+2

我不知道MSBuild解决方案,但在Visual Studio本身当然没有干净的方法。 – Polynomial