2011-03-11 105 views
1

我知道VS2008無法與.NET 4.0一起工作,並且.NET 4.0程序集文件格式已從3.5更改。然而,我會認爲由VS2010構建的針對.NET 3.5或更早版本的程序集將與VS2008兼容。VS2008無法引用VS2010中構建的.NET 3.5程序集?

嘗試引用VS2010 DLL會導致圖標上出現黃色警告覆蓋圖,並顯示「此項目無法在對象瀏覽器中查看,因爲它不可用或尚未構建。請確保項目可用並已構建「。對話框在您嘗試打開參考時彈出。

VS2010程序集正在構建爲Release/Any CPU - 這是Windows 7 32位版本。程序集未被簽名。

我缺少什麼?

回答

0

原來,發生了構建後的操作,其中包括調用ildasm和ilasm以重命名程序集中的方法。在這個過程中,顯然有些東西在DLL中被損壞。

當我不執行構建後活動時,可以在VS2008中引用程序集(以.NET 3.5爲目標)。

+0

使用VS2008附帶的ildasm和ilasm實用程序修復了此問題。具體來說,我只是運行Visual Studio 9.0版本的VSVARS32.bat。可能會有開關讓VS2010的ildasm和ilasm向後兼容,但我在ilasm的幫助中沒有看到任何明顯的東西。 – ayang 2011-03-14 18:16:40

1

它似乎認爲該組件是由解決方案中的另一個項目創建的。也許曾經是這種情況,你從解決方案中刪除了該項目?刪除程序集引用並將其與「瀏覽」選項卡一起添加。

+0

這是一個從未構建爲VS 2008解決方案一部分的第三方程序集。我在VS 2010中構建了一個新版本的DLL,並通過刪除引用並將其添加回來,將其添加到VS 2008解決方案中。 – ayang 2011-03-14 15:11:20

+0

啊,我很抱歉不清楚。我的意思是表明這個問題不是你所建議的。當我在構建DLL時調整設置時,我經常刪除並重新添加引用。不過謝謝你的想法。 – ayang 2011-03-14 16:07:12

+0

我不知道,告訴我們如何再現這個問題。將VS2010構建的程序集放到其核心,但仍然存在此問題並將其發佈到文件共享服務中。 – 2011-03-14 16:19:12

相關問題