2013-03-21 2 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.
Кто-нибудь видит в этом недостаток?
Он строит проекты, на мой 3-й партии API, которые должны работать на .NET 3.5, я пишу на явной форме его App.config работать с CLR 2.0 и 4,0

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

EDIT:
Мое главное приложение использует функции .net 4.5 и C# 5. Мой сторонний API работает на дочернем процессе (я начинаю с основного), и этот процесс будет подключаться к API, который должен быть на 3.5 и CLR2. Таким образом, я объясняю, что там работает, как CLR2.

+0

До тех пор, пока вы не используете какие-либо функции, которые зависят от v4 +, то оно должно быть в порядке – DaveHogan

+0

Я думаю, что вопрос будет зависеть от платформы, в которой ваш проект работает .. если это веб-приложение , Я нашел так много проблем с выполнением кода .Net 2.0/3.5, что одна и та же функциональность была сломана и не работала в версии 4.0. Я предполагаю, что это то, что вам действительно нужно было бы полностью проверить в отношении регрессии, чтобы увидеть если вы действительно пожинаете плоды «+ 1» хорошим вопросом кстати – MethodMan

+0

Это SDK. SDK должен поддерживать .net 4.5, он использует расширенные возможности C# 5 .., но сторонний API, к которому я подключен, является 3.5 и clr 2 a ДОЛЖЕН .. они запускаются на разных процессах. btw – ilansch

ответ

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