自從我們開始升級我們的一些項目,以.NET框架4.0,我已經運行到了很多關於以下錯誤的問題:有沒有辦法卸載或重新加載當前加載的運行時?
This assembly is built by a runtime newer than the currently loaded runtime and cannot be loaded.
它現在與我們的安裝程序發生。安裝程序會查看DLL的列表並在目標機器上安裝必要的DLL。每個程序集都使用
Assembly.LoadFile
隊列中的第一個程序集是3.5。一旦安裝程序拿起4.0 DLL並嘗試使用Assembly.LoadFile加載它,我會得到該錯誤。 似乎加載第一個DLL設置當前加載哪個「運行時」的先例。
有沒有一種方法可以在處理4.0 DLL之前卸載此當前加載的運行時,以避免此錯誤?
沒錯。我提到的安裝程序是我們自己的定製可執行應用程序;不是安裝解決方案安裝程序項目。你能設置任何可執行文件的啓動條件嗎? – topwik 2010-09-14 17:46:43
錯誤引用的當前運行時,這是特定應用程序使用的運行時是否正確? – topwik 2010-09-14 17:47:56
您需要針對.NET 4.0編譯此可執行文件。通過這樣做,它將自動運行在CLR 4.0下(如果可用),您將能夠加載針對.NET 4.0編譯的程序集。 – 2010-09-14 17:48:58