2011-01-12 57 views
1

這裏是一個益智遊戲 - 這是我不認爲會工作的東西(在那裏並不意外)。使用VS 2010,我可以參考在VS 2005中創建的項目嗎?

我們有一個在其他幾個桌面應用程序項目中引用的庫項目。庫項目是用VS 2005編寫的(.NET 2.0)。

我的問題是,我們的一些應用暫時仍然生活在VS 2005中(出於各種原因)。我似乎無法在VS 2010中引用這個庫項目,但它並沒有要求我將其升級到.NET 4,如果我這樣做,那麼打破了我在VS 2005項目中引用它的能力。

這種東西會炸我的腦袋。有什麼辦法可以使這項工作?

回答

1

嗯,這並沒有多大意義。您不參考「庫項目」,而是引用它生成的DLL。項目+添加引用,瀏覽選項卡。沒有任何已知的問題,在95%的準確度猜測中,混合模式組件有幾根毛髮。

如果您真的嘗試將vs2005 項目加載到vs2010解決方案中,那麼是的,它會嘗試轉換項目文件。這將變成vs2005緊張狀態,它沒有時間機器來猜測vs2010項目是什麼樣子。只需製作項目目錄的副本即可解決該問題。

+0

也許我誤解了你。在VS中,添加 - >現有項目。我喜歡引用一個項目,而不僅僅是一個dll,所以我可以遍歷我引用的代碼。這種做法沒有道理,還是我不明白? – Ducain 2011-01-12 22:45:42

0

在VS.NET 2010中將.NET版本修改爲.NET 4.0後,是否可以將.NET版本更改回3.5或2.0?

0

使用文件引用內置的dll,而不是項目引用。

您可能還會發現,您需要添加額外的位 compatible-framework info to your manifest file來告訴.net,以允許您的.exe使用.net 4和.net 2程序集並排 - 如果它不在那裏,您只會得到啓動時出錯。 (對不起,我不記得確切的細節,我現在不在我的工作機器上查找它們 - 但是如果您在運行時遇到問題,錯誤信息應該會引導您找到所需的確切解決方案)

更正:我想這個「useLegacy」啓動設置,如果你想使用的.NET 2.0的混合和.NET應用程序中的4.0組件,您可能需要添加到您的app.config的:

<startup useLegacyV2RuntimeActivationPolicy="true"> 
    <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/> 
</startup> 
0

開選項,這是一個完整的PITA,但應該工作是:

在2010年創建一個新的項目文件,其中包含2005年項目文件的所有內容。只需將其稱爲MyProject2010.csproj或其他。

然後,將此項目添加到您的2010解決方案。

相關問題