вторник, 19 декабря 2017 г.

.NET App: Mixed mode assembly is built against version 'v2.0.50727' of the runtime and cannot be loaded in the 4.0 runtime without additional configuration information

Первое что нужно сделать - это проверить файл App.config на наличие следующей секции:
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
    <startup> 
        <supportedRuntime version="v4.0" 
                sku=".NETFramework,Version=v4.6.1" />
    </startup>
</configuration>

Если она есть, то нужно проверить копируется ли App.config в директорию с exe-шником программы. Нужно искать следующий файл: your-app-name.exe.config. В моем случае его не было. Открываем файл проекта *.csproj тесктовым редактором и ищем в нем блок в котором подключен файл App.config. В моем случае Visual Studio его исковеркала до такого вида:
<EmbeddedResource Include="App.config">
    <SubType>Designer</SubType>
    <CopyToOutputDirectory>Always</CopyToOutputDirectory>
</EmbeddedResource>
и по-этому он не копировался. Я вернул блоку корректный вид (ниже) и все заработало:
<None Include="App.config" />

1 комментарий: