Могу ли я установить атрибут app.config 'useLegacyV2RuntimeActivationPolicy' программным способом? - PullRequest
2 голосов
/ 27 мая 2010

Мне пришлось перенести .NET 3.5 на 4.0, но некоторые DLL не загружались, после поиска в Google я обнаружил, что создание app.config решит эту проблему:

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <startup useLegacyV2RuntimeActivationPolicy="true">
    <supportedRuntime version="v4.0" />
  </startup>
</configuration>

Я бы хотел настроить эти параметры без использования файлов конфигурации, это возможно?

Ответы [ 2 ]

6 голосов
/ 16 сентября 2011

Это можно установить во время выполнения, из приложения или библиотеки .NET, с некоторыми ограничениями. Вы можете использовать интерфейс ICLRRuntimeInfo, чтобы справиться с этим. Подробнее см. В этой статье .

1 голос
/ 27 мая 2010

Это технически возможно. Вам придется самостоятельно разместить CLR, чтобы вы могли вызвать метод ICLRRuntimeInfo :: BindAsLegacyV2Runtime () , прежде чем создавать основной домен приложения. Файл .config, как правило, будет гораздо более болезненным, если вы уже не размещаете хост.

...