C# / VS2008:将单独的调试/发布引用添加到项目

36

当向VS 2008 C#项目添加用户控件或项目引用时,我只能添加一个程序集的配置。是否可以添加不同的配置,具体取决于容器项目的配置。

例如,我正在开发一个用户控件,并且正在工作中一个示例应用程序。我想添加用户控件,以便示例的调试版本将使用用户控件的调试版本,而示例的发布版本将使用用户控件的发布版本。

有什么建议吗?

4个回答

34
<Reference Include="MyLibrary">
  <HintPath>..\$(Configuration)\MyLibrary.dll</HintPath>
</Reference>

如果以调试模式编译,则会添加对“..\Debug\MyLibrary.dll”的引用;如果以发布模式编译,则会添加对“..\Release\MyLibrary.dll”的引用。


很棒的答案 + 使用相对路径,因为dll可能在解决方案外的文件夹中。 - CallMeLaNN
而且Visual Studio(在我的情况下是VS2010)似乎很有礼貌,当我们稍后从IDE修改项目文件时,它不会干扰这些手动编辑。作为一个测试,我添加了一个新类,一切都运行良好。 - Radim Cernej

29

您可以通过编辑 csproj 文件来实现这一点;在引用中添加“Condition”属性即可。

<Reference Include="Foo" Condition="'$(Configuration)'=='Debug'"/>
<Reference Include="Bar" Condition="'$(Configuration)'=='Release'"/>

然而,我对这对单元测试意味着什么表示担忧。


1
问题是关于使用相同的“UserControl”,这样我们就不能添加两次引用,而Visual Studio不允许。@Salvatore Previti的答案是最好的。 - CallMeLaNN
这对我(Visual Studio 2022)不起作用,我也用了@Salvatore Previti的答案解决了。 - MAXE

5

@Marc Gravell的建议虽然可行,但是你不想把两个项目放在同一个解决方案中吗?如果它们在同一个解决方案中,当引用用户控件项目到示例应用程序项目时,可以添加项目引用。使用项目引用时,Visual Studio将自动为Debug版本添加Debug版本,为Release版本添加Release版本。


1
如果引用的项目单独受源代码控制(可能是一个通用库项目),那么在尝试将引用项目添加到源代码控制时可能会出现问题。 - Alan B

1

不要直接添加对.dll的引用,这会让你在debug或release文件夹中选择一个.dll,而是应该通过选择“项目引用”来添加引用。 此链接 解释了如何通过.dll与项目-项目引用添加引用。为了您的目的,您应该选择后者。

还可以参考我的答案,了解何时将引用作为.dll与引用作为项目。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接