Я занимаюсь разработкой приложения-службы Windows с использованием TopShelf и под средой dotnet core 2.Для его создания я использовал шаблон Console App (ядро .NET).Теперь, чтобы развернуть приложение, я создал профиль публикации, чтобы сделать это локально.Это содержимое:
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<PublishProtocol>FileSystem</PublishProtocol>
<Configuration>Release</Configuration>
<TargetFramework>netcoreapp2.0</TargetFramework>
<PublishDir>C:\Repos\Deployments\MassTransit.Consumer</PublishDir>
<Platform>Any CPU</Platform>
<SelfContained>true</SelfContained>
<_IsPortable>true</_IsPortable>
<RuntimeIdentifier>win7-x64</RuntimeIdentifier>
</PropertyGroup>
Как вы можете видеть, RuntineIdentifier является win7-x64 , что в соответствии с документацией должнобыть правильным для запуска приложения в Windows Server 2008 R2.При развертывании приложения в локальной папке я могу без проблем запустить его на своем компьютере, выполняя сгенерированный файл .exe, но при попытке запустить его в Windows Server 2008 R2, копируя все файлы локальной папки на сервере Windows,Я получаю badimageformatexception ошибка формата il ill :
В Windows установлен сервер Dotnetcore.2.0.5-WindowsHosting и Dotnet-sdk-2.1.105-win64
Просто к сведению, у меня есть приложение web api core 2, работающее под IIS в этомсервер, и если я запускаю dotnet --version в cmd.exe, он возвращает 2.1.0.105, поэтому он распознает, что ядро dotnet установлено
Любая подсказка, почему консольное приложение вызывает эту ошибкув то время, чтобы запустить его в Windows Server 2008 R2.Нужно ли устанавливать что-нибудь еще?Или мне нужно что-то изменить в моем профиле публикации?
Обновление
Я почти уверен, что исключение происходит в желтой линии: Load.From
:
Я использую этот код для загрузки пользовательских библиотек с модулями Autofac, которые мне нужно зарегистрировать при запуске приложения.