2012-02-22 127 views
1

我有一個引用另一個項目的DLL的項目。他們都在.net框架2.0。框架升級到3.5

所以升級既3.5,但是當我去的第二個項目(一個引用的第一個項目)中引用它仍說在性能運行時版本2.0,即使我刪除了參考和重新添加。

  1. 如何在部署到2.0版本的服務器之前確定引用的dll是否爲升級的dll?

  2. 我不想刪除服務器中的所有文件並進行部署,升級後我需要檢查配置文件是否引用相同的dll並部署發佈的文件,或者它需要全部替換嗎?

+0

Framework 3.5仍然使用CLR 2.0版,所以你看到的是正確的。也許你可以看到[這個圖表](http://msdn.microsoft.com/en-us/library/bb822049.aspx) – V4Vendetta 2012-02-22 11:18:49

+0

@ V4Vendetta:感謝評論,我將如何確保它是3.5呢? – Zaki 2012-02-22 11:29:30

+0

爲什麼不更新到Framework 4.0,因爲你現在正在使用它? – 2012-02-22 12:34:38

回答

3

.net 3.5和.Net 2都運行在CLR的版本2上,因此'舊'和'升級'程序集的運行時版本不會改變。

至於找出它是否「升級」,我建議使用ILDASM來查看哪個版本的mscorlib被引用。

然而,答案this SO question提供一些替代品。

+0

+1:但是特定的'ildasm.exe'調用如何幫助顯示.NET 3.5或2.0框架是否被引用。 – 2012-02-22 11:20:35

+0

@ rich.okelly:我需要下載ildasm還是與Visual Studio一起提供? – Zaki 2012-02-22 11:28:54

+0

@ Sam1是的,打開visual studio命令提示符,ildasm將可用。 – 2012-02-22 11:39:58

1

您可以輕鬆地檢查裝配是由反射器打開它(或其他反編譯)建立針對哪個版本。

+0

謝謝你的回答,你知道我可以使用任何免費的嗎?搜索和redgate是不是免費的 – Zaki 2012-02-22 11:34:26

+1

Telerik剛剛發佈[JustDecompile](http://www.telerik.com/products/decompiler.aspx),它是免費的。 (這也不錯) – sovanesyan 2012-02-22 11:37:29

+0

+1謝謝你 – Zaki 2012-02-22 11:52:00

1

的CLR爲.NET 3.0和.NET 3.5是從.NET 2.0相同的CLR。

因此檢查的最佳途徑,如果你的組件升級與否,是使用匯編版本。在構建程序集時,在AssemblyInfo.cs中維護程序集版本和構建版本。

擁有一個強大的命名組件是檢查的最佳途徑。