2010-11-05 47 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