2010-10-12 252 views
5

我有一個.Net 2.0項目,依賴於許多第三方.Net dll(所有這些項目顯然都以.Net 2.0爲目標)。將.Net 2.0項目升級到.Net 4.0

如果我將我的項目遷移到VS2010並將.Net 4.0框架作爲目標,我的應用程序是否仍會構建?或者它會抱怨.Net 2.0 dll的引用,我將不得不找到這些第三方dll的.Net 4.0版本?

+0

亞倫的回答似乎是正確的。 – 2010-10-12 19:10:03

+0

經過一些測試後,我發現:ASP.Net和CmdLine應用程序都在重定向到.Net 4.0之後工作。配置文件不需要做任何修改。另外,我用來生成PDF文件的第三方dll(使用.Net 2.0構建)也像以往的.net 3.5一樣工作。如果我發現任何疑難問題,將更新 – 2010-10-12 19:11:51

回答

3

是的,它會工作。確保在執行應用程序的機器上安裝了.NET 2和4 FW。

+0

我的機器上安裝了.net 2和.net 4框架。但是,我收到錯誤「無法加載文件或程序集」Microsoft.Practices.EnterpriseLibrary.Data,Version = 3.1.0.0,Culture = neutral,PublicKeyToken = b03f5f7f11d50a3a'或其依賴項之一。所在程序集的清單定義與(來自HRESULT的異常:0x80131040)「 – 2010-10-12 18:24:10

+0

@Rajah查找了Microsoft.Practices.EnterpriseLibrary.Data,它表示它適用於2.0和3.0,但對於特定的事情需要3.0 ...您是否還有3個? – 2010-10-12 18:51:15

+0

它看起來像VS 2010,自動更新dll ref到V5(它也安裝在我的機器上)。一旦我刪除它並閱讀EntLib的3.0版,它就開始工作,沒有問題。 – 2010-10-12 19:08:00

2

如果您需要使用舊的組件4.0(混合模式),你可能需要添加以下<yourappname>.config

<startup useLegacyV2RuntimeActivationPolicy="true"> 
    <supportedRuntime version="v4.0"/> 
</startup> 

我不得不這樣做時,我嘗試了一些古老1.1組件加載到我的IronPython的程序(.NET 4.0),並得到了以下錯誤:

"Mixed mode assembly is built against version 'v1.1.4322' of the runtime and cannot be loaded in the 4.0 runtime without additional configuration information." 

添加這些三線我ipyw.exe.config文件讓我跑在混合模式下的組件。