Невозможно запустить консольное приложение dotnet core 2 в Windows Server 2008 R2 - PullRequest
0 голосов
/ 08 мая 2018

Я занимаюсь разработкой приложения-службы 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 :

Console Error

В 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:

Code

Я использую этот код для загрузки пользовательских библиотек с модулями Autofac, которые мне нужно зарегистрировать при запуске приложения.

1 Ответ

0 голосов
/ 08 мая 2018

Это была не проблема сервера. Это потому, что шаблон, который я пытаюсь найти, содержится в имени файла, которое является путем, поэтому он загружал неправильные сборки, такие как hostfrx.dll и hostpolicy.dll:

Assemblies

Он работал локально, потому что эти сборки отображаются после развертывания проекта.

...