我有一個引用另一個項目的DLL的項目。他們都在.net框架2.0。框架升級到3.5
所以升級既3.5,但是當我去的第二個項目(一個引用的第一個項目)中引用它仍說在性能運行時版本2.0,即使我刪除了參考和重新添加。
如何在部署到2.0版本的服務器之前確定引用的dll是否爲升級的dll?
我不想刪除服務器中的所有文件並進行部署,升級後我需要檢查配置文件是否引用相同的dll並部署發佈的文件,或者它需要全部替換嗎?
我有一個引用另一個項目的DLL的項目。他們都在.net框架2.0。框架升級到3.5
所以升級既3.5,但是當我去的第二個項目(一個引用的第一個項目)中引用它仍說在性能運行時版本2.0,即使我刪除了參考和重新添加。
如何在部署到2.0版本的服務器之前確定引用的dll是否爲升級的dll?
我不想刪除服務器中的所有文件並進行部署,升級後我需要檢查配置文件是否引用相同的dll並部署發佈的文件,或者它需要全部替換嗎?
.net 3.5和.Net 2都運行在CLR的版本2上,因此'舊'和'升級'程序集的運行時版本不會改變。
至於找出它是否「升級」,我建議使用ILDASM來查看哪個版本的mscorlib被引用。
然而,答案this SO question提供一些替代品。
+1:但是特定的'ildasm.exe'調用如何幫助顯示.NET 3.5或2.0框架是否被引用。 – 2012-02-22 11:20:35
@ rich.okelly:我需要下載ildasm還是與Visual Studio一起提供? – Zaki 2012-02-22 11:28:54
@ Sam1是的,打開visual studio命令提示符,ildasm將可用。 – 2012-02-22 11:39:58
您可以輕鬆地檢查裝配是由反射器打開它(或其他反編譯)建立針對哪個版本。
謝謝你的回答,你知道我可以使用任何免費的嗎?搜索和redgate是不是免費的 – Zaki 2012-02-22 11:34:26
Telerik剛剛發佈[JustDecompile](http://www.telerik.com/products/decompiler.aspx),它是免費的。 (這也不錯) – sovanesyan 2012-02-22 11:37:29
+1謝謝你 – Zaki 2012-02-22 11:52:00
的CLR爲.NET 3.0和.NET 3.5是從.NET 2.0相同的CLR。
因此檢查的最佳途徑,如果你的組件升級與否,是使用匯編版本。在構建程序集時,在AssemblyInfo.cs中維護程序集版本和構建版本。
擁有一個強大的命名組件是檢查的最佳途徑。
Framework 3.5仍然使用CLR 2.0版,所以你看到的是正確的。也許你可以看到[這個圖表](http://msdn.microsoft.com/en-us/library/bb822049.aspx) – V4Vendetta 2012-02-22 11:18:49
@ V4Vendetta:感謝評論,我將如何確保它是3.5呢? – Zaki 2012-02-22 11:29:30
爲什麼不更新到Framework 4.0,因爲你現在正在使用它? – 2012-02-22 12:34:38