我們有一個建立在.Net Framework 3.5版本中的項目。我們將這個項目更新爲.NET Framework的4.0版本,在我們解決了所有問題後,我們注意到Web服務初始化期間存在嚴重滯後。在.Net Framework 3.5啓動項目中使用.Net Framework 4.5項目參考項目
我們恢復了項目回到3.5框架,並修復了我們的滯後問題。我們有第二個項目依賴於4.5框架dll的使用,因此第二個項目需要在4.5版本中構建。
我知道這個問題之前已經被問過了,答案一直是不可能的 - 但這是可能的,因爲我們確實有這個確切的結構工作,遵循下面msdn論壇上提供的步驟,而是使用<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.6">
運行時而不是僅顯示的4.0。
的問題是,我們再增加一個全新的服務調用我們的web服務,而現在當我們試圖訪問項目引用,它拋出一個錯誤,這是訪問一個建項目在較新的版本中,給出BadImageFormatException。
在上述論壇上討論這個確切的錯誤,並指出,你需要包括標準2.0參考,並在<startup>
部分爲<supportedRuntime>
的4.0參考,我們有他們兩人英寸
<startup>
<supportedRuntime version="v2.0.50727"/>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" />
</startup>
我相信問題是app.config不會加載兩個運行時。我認爲,這是因爲發生的事情,如果我們切換像下面的supportedRuntimes的順序....
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" />
<supportedRuntime version="v2.0.50727"/>
</startup>
我們開始得到錯誤隨時我們試圖訪問任何3.5框架的引用。
現在,supportsRuntime的添加順序非常重要 - 在第二組代碼中,它更喜歡在3.5框架上使用4.5版本,但它應該使用3.5框架,當它可以更正時?我可以在這裏取得基礎,但就像我說過我們有這個工作 - 不幸的是我沒有爲我的代碼集創建一個標籤,所以我不能回到正在工作的代碼集。
任何人都可以想到我可能會丟失的任何東西,或者任何人都可以告訴我是否可以專門告訴一組代碼來利用vb.Net中的4.5框架?
「問題是,我們重新向我們的webservice添加了一個全新的服務調用,現在當我們嘗試訪問項目引用時」如果您有Web服務,那麼您不能僅僅將端點作爲它是?你爲什麼要構建一個Web服務,然後嘗試引用該項目?你可以在仿真模式下運行它,然後設置一個客戶端來使用它。試圖混合框架是一個壞主意。通常可以將較低的圖書館引用到較高的圖書館,但另一種方式只是要求麻煩。 – djangojazz