Как использовать пользовательское имя для app.config или значений конфигурации жесткого кода в моей сборке - PullRequest
0 голосов
/ 12 января 2012

Я написал библиотеку классов на 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, чтобы вообще избежать использования файла конфигурации?

Ответы [ 3 ]

0 голосов
/ 12 января 2012

Я могу ошибаться, но просто думаю, что если вы перекомпилируете вашу сборку .net 4.0 в .net 2.0 framework, так как здесь есть обратная совместимость. Тогда я думаю, что эта ошибка сборки смешанного режима должна идти, и вам может не понадобиться этот конфиг.

0 голосов
/ 14 марта 2012

Я согласился с идеей Джо :

Если MyApp.exe будет много обновляться, вы можете переименовать его или даже автоматически сгенерировать файл конфигурации ссоответствие имени перед первым вызовом в любой код .NET?- Джо 12 января в 17: 38

0 голосов
/ 12 января 2012

В Visual Studio 2010 вы можете переименовать файл app.config с помощью:

в Проект -> Свойства проекта , выберите События сборки вкладка и редактирование командной строки события после сборки для переименования файла .config, пример:

rename "$(TargetDir)$(TargetFileName).config" "$(TargetFileName).versionX"
...