我目前正在寻找将一些仅调试代码添加到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 Fix
:https://visualstudio.uservoice.com/forums/121579-visual-studio-ide/suggestions/2062487-allow-assembly-references-to-switch-based-on-confi
答案 0 :(得分:13)
使用MSBuild Condition
的两种情况,您曾经配置csproj
并忘记了这一点。
首先:使用Condition
csproj
文件中指定需要过滤引用的条件:<ProjectReference
Include="DebugOnlyHelpers.csproj"
Condition=" '$(Configuration)' == 'DEBUG' "
第二:将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>
答案 1 :(得分:-5)
不幸的是现在没办法做到这一点。您必须切换到debug并删除引用,然后在返回发行版时将其添加回来。