Проблема сборки в смешанном режиме с библиотекой классов

У меня есть проект библиотеки классов, я должен сослаться на сборку в моем проекте библиотеки классов, который нацелен на версию 2.0.50727, а затем, в конечном итоге, вызвать мою библиотеку классов из проекта, использующего версию .Net 4.

Когда приложение запускается, оно выдает ошибку «Сборка в смешанном режиме создана для версии среды выполнения v2.0.50727 и не может быть загружена в среде выполнения 4.0 без дополнительной информации о конфигурации».

Я знаю, что могу добавить атрибуты в app.config, чтобы избежать этой ошибки, но в моем случае это библиотека классов, в которой нет app.config.

Я попытался изменить свою библиотеку классов на .net framework 2, но она все еще показывает ошибку.

Когда я меняю целевую структуру основного приложения с .net 4 на .net 3.5, компилятор выдает ошибку в следующей строке:

используя System.ComponentModel.Composition;

Что я должен делать ?


person alphaprolix    schedule 23.12.2013    source источник
comment
Вы должны предоставить файл .config для EXE, который использует вашу библиотеку классов. Перестроить эту сборку смешанного режима для работы с .NET 4 очень просто. Где-то есть программист, которому нужно 5 минут, чтобы сделать это за вас, здесь вы его не найдете. Возьмите телефон и позвоните ему.   -  person Hans Passant    schedule 23.12.2013
comment
Хм, в моем случае это Microsoft, а EXE, который я использую, - это Microsoft Dynamics AX Retail POS, я не могу их вызвать, это не сработает, может быть, мне придется преобразовать мою программу в exe и вызвать ее как внешнюю программу из МС ПОС :(   -  person alphaprolix    schedule 23.12.2013


Ответы (1)


В итоге я изменил свою DLL на бесформенный EXE-файл winform, который может принимать аргументы командной строки для репликации функциональности аргументов конструктора библиотеки классов. Я указал следующие атрибуты в моем exe-файле app.config, чтобы избежать ошибки сборки в смешанном режиме:

<startup useLegacyV2RuntimeActivationPolicy="true">
  <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/>
</startup>
person alphaprolix    schedule 25.12.2013