我们在这里有多个共享一些公共库的产品。这些库是单独解决方案的一部分(因此它们可以由TFS独立构建),但问题是在开发期间,必须修改公共库,将其编译为二进制文件,将其复制到公共位置,编译产品解决方案
为了避免这种情况,我想知道它是否可能有条件引用,所以对于调试配置,我会将它们作为项目引用引用,而在发布配置中它们将是二进制引用。
答案 0 :(得分:39)
您应该可以通过直接编辑项目文件来使用条件结构(VS IDE不会为您执行此操作)。
例如,您可以使用“选择”元素执行类似的操作:
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003" >
<PropertyGroup>
<!-- ... -->
</PropertyGroup>
<Choose>
<When Condition=" '$(Configuration)'=='Debug' ">
<ItemGroup>
<ProjectReference Include="..\stuff\MyStuff.csproj">
<Project>{4c7bbe47-8d84-45d4-95f0-f640ba59563c}</Project>
<Name>MyStuff</Name>
</ProjectReference>
</ItemGroup>
</When>
<When Condition=" '$(Configuration)'=='Retail' ">
<ItemGroup>
<Reference Include="MyStuff.dll" />
</ItemGroup>
</When>
</Choose>
<!-- Rest of Project -->
</Project>
答案 1 :(得分:4)
你可能想看看NuGet:
<强> NuGet 强>
NuGet是面向.NET平台的免费开源开发人员软件包管理系统,旨在简化在开发期间将第三方库合并到.NET应用程序中的过程。
(在这种情况下,你将成为第三方)
注意:这不会为您提供条件引用,但它可以轻松更新公共组件。