2013-03-21 102 views
3

在繼續爲這個線程:
Mixing .NET 3.5 with 4/4.5 assemblies in the same solution/project項目的參考解決方法.NET 4.5和.NET 3.5

我找到了一個解決辦法:
http://social.msdn.microsoft.com/Forums/en-US/clr/thread/36b1a209-55d5-4323-91dc-0919ba2e1d03/

什麼它基本上做,讓我的解決方案和編譯確定每個CLR要運行的項目。
有沒有人看到這方面的劣勢?
它建立的項目,在我的第三方API,它必須在.NET 3.5上運行,我在它的App.config明確地寫入與CLR 2.0上運行,而不是4.0

<startup> 
<supportedRuntime version="v2.0.50727"/> 
<!--<supportedRuntime version="v4.0"/>--> 
</startup> 

編輯:
我的主要應用正在使用.net 4.5和C#5功能。我的第三方API運行在子進程上(我從main開始),並且該進程將連接到必須位於3.5和CLR2上的API。所以我明確定義那裏運行CLR2 ..

+0

只要你不使用依賴於V4 +那麼就應該罰款的任何功能 – DaveHogan 2013-03-21 13:35:05

+0

我認爲這個問題將取決於在你的項目正在運行。例如在平臺上,如果它是一個Web應用程序,我發現在執行.Net 2.0/3.5代碼時遇到了很多問題,因爲相同的功能被破壞,並且在4.0中無法使用。我想這是你必須完全測試迴歸才能看到的東西如果你真的通過 – MethodMan 2013-03-21 13:36:58

+0

方式收穫'+ 1'好問題,那就是SDK。該SDK應該支持.net 4.5它使用高級功能C#5 ..但我連接到的第三方API是3.5和clr 2 a必須..他們運行在不同的進程btw – ilansch 2013-03-21 13:40:50

回答

1

您的配置文件將加載.NET 2.0運行時,它會在某個時候加載.NET4.5組件失敗。你真的希望你的應用在.NET4.5運行時運行,並且能夠加載3.5個組件。你應該嘗試下面的配置文件。

<configuration> 
    <startup useLegacyV2RuntimeActivationPolicy="true"> 
     <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5"/> 
    </startup> 
</configuration> 
+0

我會研究你在說什麼。感謝+1 – ilansch 2013-03-22 07:07:36

相關問題