Смешивание сборок .NET (клиентский профиль .NET 3.5 и .NET 4.0) - PullRequest
2 голосов
/ 25 марта 2011

Мы хотели бы развернуть наше приложение, ориентированное на клиентский профиль .NET 4.0, потому что я считаю, что оно теперь развернуто на большинстве ПК с Windows 7. Для некоторых используемых нами компонентов требуется .NET 4.0, поэтому использование .NET 3.5 невозможно, и мы не хотим принудительно использовать для установки полную платформу .NET, если это возможно.

Однако для некоторых частей нашей кодовой базы требуется System.web, которого нет в клиентском профиле 4.0, поэтому я хотел бы упаковать несколько целевых сборок 3.5 вместе с клиентскими профилями 4.0. Опять же, единственная цель состоит в том, чтобы пользователи не нуждались в установке полной платформы .Net 4.0, поскольку по умолчанию она не устанавливается на ПК пользователей.

Однако, когда я пытаюсь создать свое приложение, я получаю ошибки связывания: Не удалось найти тип или имя пространства имен 'XXXX' (отсутствует директива using или ссылка на сборку?) C: .... \ WpfMixedAssemblies \ WpfMixedAssemblies \ MainWindow.xaml.cs

(Если обе сборки предназначены для одной и той же среды выполнения, то, естественно, все в порядке)

Любые «обходные пути» будут высоко оценены. Например. Можно ли динамически загружать сборки, предназначенные для другой среды выполнения, в родительский процесс?

1 Ответ

0 голосов
/ 01 декабря 2011

Вы не упоминаете, какие функции System.Web вы используете, но если вы используете только некоторые из служебных классов (вспоминается HttpUtility), то вы можете рассмотреть возможность взглянуть на исходный код, чтобы проект Mono (http://mono -project.com). Возможно, вы сможете включить исходный код в классы, которые вам требуются, в одну из сборок вашего профиля клиента. Лицензия на код является очень либеральной MIT-лицензией, которая разрешает такое использование (хотя, если вы улучшите какой-либо код, было бы полезно внести свой вклад в проект).

...