2010-11-05 45 views
8

在问我之前,我读了thisthis线程。没有帮助。参考不同配置的不同配置

我正在使用Visual Studio 2003(这是我的雇主强制要求的),但我猜VS的后续版本的答案可能也有用。所以,假设我有两个.Net项目:A - 这是一个类库和B - 这是一个应用程序。在BI中,单击添加引用,转到项目选项卡并选择A.在这种情况下,B的调试版本将引用A的调试版本,而B的发布版本将使用A的发布版本。想象一下,而不是项目AI只有两个程序集 - aD.dll和a.dll。我没有任何创建这些项目的项目。我想要做的是强制执行B的参考aD.dll的调试版本和B参考a.dll的发布版本
问题1:我该如何做?

当我想引用一些DLL,我去添加引用 - >浏览和浏览我的DLL。但我需要指定的不是完整路径,而是相对路径。
问题2:我该怎么做?

这是一个紧急情况,在此先感谢:)

回答

14

您无法通过IDE做到这一点,但你可以通过手动黑客的.csproj文件做到这一点:

如果您“VE已经有了一个参考,比方说,a.dll

<Reference Include="a">...</Reference> 

...然后尝试一双条件如下:

<Reference Condition="'$(Configuration)' == 'Release'" Include="a">...</Reference> 
<Reference Condition="'$(Configuration)' == 'Debug'" Include="aD">...</Reference> 

编辑:这里是你可以在<Reference>元素中放一个解释:http://msdn.microsoft.com/en-us/library/bb629388.aspx

+0

非常感谢。在这种情况下,我可以指定相对路径,如** Include =“../../Assemblies/Debug/aD.dll"**? – 2010-11-05 10:56:19

+0

'Include ='是DLL的名称(没有扩展名),但是你可以在''元素中放入你喜欢的东西。 IDE应该已经提供了''。 – 2010-11-05 11:02:52

+0

给了我很多麻烦! – Benoittr 2011-10-27 22:13:10