2017-01-18 3 views
1

У нас есть проект, который был построен в версии 3.5 .NET Framework. Мы обновили этот проект в 4.0-версии .NET Framework, и после того, как мы работали над всеми проблемами, мы заметили значительное отставание во время инициализации веб-сервиса.Используйте ссылку на проект .Net Framework 4.5 в проекте запуска .Net Framework 3.5

Мы вернули проект обратно в 3.5 Framework и устранили проблемы с задержкой. У нас есть второй проект, который опирается на использование 4.5-разрядных dll, поэтому второй проект должен быть построен в версии 4.5.

Я знаю, что этот вопрос задан раньше, и что ответ всегда заключался в том, что это невозможно, но это возможно, потому что мы действительно имели эту точную структуру, работающую по шагам, доступным на форуме msdn ниже , но вместо этого использует только рабочую среду <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.6"> вместо показанного 4.0.

https://social.msdn.microsoft.com/Forums/vstudio/en-US/36b1a209-55d5-4323-91dc-0919ba2e1d03/using-methods-of-a-net-40-dll-by-net-35sp1-client?forum=clr

Проблема в том, что мы вновь добавила новый вызов службы на наш веб-сервис, и теперь, когда мы пытаемся получить доступ к ссылке на проект, он выдает ошибку, что обратившийся проект, который был построен в новой версии, предоставляя исключение BadImageFormatException.

обсуждалась Это точная ошибка в приведенном выше форуме, и заявил, что вам необходимо включить стандартный 2.0 ссылки и эталонным 4.0 в разделе <startup> как <supportedRuntime>-х, и мы оба из них.

<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 Framework ссылки.

Теперь добавлен заказ поддерживаемого времени выполнения. Важно: во втором наборе кода он предпочел бы использовать версию 4.5 над 3.5 Framework, но СЛЕДУЕТ использовать 3.5 Framework, когда это возможно, исправить? Я мог бы быть вне базы здесь, но, как я уже сказал, у нас это работает - к сожалению, я не создал ярлык для своего кодового набора, поэтому я не могу просто вернуться к рабочему коду.

Может ли кто-нибудь подумать о чем-нибудь, чего я мог бы пропустить, или кто-нибудь скажет мне, можно ли конкретно указать набор кода для использования 4.5 Framework в vb.Net?

+0

«Проблема в том, что мы повторно добавили новый сервисный вызов в наш веб-сервис, и теперь, когда мы пытаемся получить доступ к ссылке на проект« Это путано, если у вас есть веб-служба, вы не можете просто использовать конечную точку как это? Почему вы создаете веб-службу, а затем пытаетесь ссылаться на проект? Вы могли бы просто запустить его в режиме эмуляции, а затем настроить клиента, чтобы использовать это вместо этого. Попытка смешать рамки - плохая плохая идея. Обычно вы можете ссылаться на более низкую библиотеку на более высокую, но другой способ просто просит неприятностей. – djangojazz

ответ

0

Я уверен, что вам нужно только одно поддерживаемое время выполнения, по крайней мере, во время выполнения, поскольку на каждый процесс загружается только одна среда выполнения.

Я достаточно уверен, поскольку я все время использую эту конфигурацию с 3.5 скомпилированным DotLisp, работающим на последней платформе, поэтому я могу получить доступ к последним материалам в DotLisp REPL.

Смежные вопросы