Я написал библиотеку классов на C # (mydll.dll), которая обращается к сторонним dll (3rdpdll.dll).Mydll.dll, в свою очередь, используется через COM-взаимодействие не-.NET-процессом (myapp.exe).
Mydll.dll - это .NET 4.0, но 3rdpdll.dll был собран с использованием v2.0.50727, поэтомукогда я запускаю myapp.exe, я получаю следующую ошибку:
Сборка в смешанном режиме строится на основе версии v2.0.50727 среды выполнения и не может быть загружена во время выполнения 4.0 без дополнительной информации о конфигурации...
Это исправляется, если я создаю файл myapp.exe.config рядом с myapp.exe, содержащий следующий XML:
<?xml version="1.0"?>
<configuration>
<startup useLegacyV2RuntimeActivationPolicy="true">
<supportedRuntime version="v4.0"/>
</startup>
</configuration>
Проблема в myapp.exe часто обновляется и содержит информацию о версии, например, myapp.v2.063.exe.Это потребует переименования файла конфигурации при каждой новой итерации приложения (myapp.v2.063.exe.config).
Есть ли способ объявить статическое имя для файла конфигурации,такой как "app.config", чтобы его не нужно было переименовывать и пересылать вместе с каждой новой итерацией myapp.exe?Или, что еще лучше, могу ли я жестко закодировать атрибут useLegacyV2RuntimeActivationPolicy в mydll.dll, чтобы вообще избежать использования файла конфигурации?