无法在Windows Server 2008 R2中运行dotnet core 2控制台应用程序

时间:2018-05-07 21:00:57

标签: .net-core windows-services autofac windows-server-2008-r2 topshelf

我正在使用TopShelf和dotnet core 2框架开发一个Windows服务应用程序。为了创建它,我使用了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 ,根据documentation,这应该是在Windows Server 2008 R2中运行应用程序的正确选项。当我将应用程序部署到本地文件夹时,我可以在我的机器执行生成的.exe时运行它,但是当我尝试在Windows Server 2008 R2中运行它时,复制Windows服务器中本地文件夹的所有文件,我正在 badimageformatexception bad il format error

Console Error

在Windows服务器中安装 Dotnetcore.2.0.5-WindowsHosting Dotnet-sdk-2.1.105-win64

仅仅是一个FYI,我在这个服务器的IIS下运行了一个web api core 2应用程序,如果我在cmd.exe中运行 dotnet --version ,它返回2.1.0.105,所以它识别出已安装dotnet核心

任何线索为什么控制台应用程序在Windows Server 2008 R2中运行它时会收到我的错误。我需要安装其他任何东西吗?或者,我是否需要在发布配置文件中更改某些内容?

更新

我很确定Load.From

在黄线上发生异常

Code

我正在使用该代码加载自定义库,这些库具有我需要在应用程序启动时注册的Autofac模块。

1 个答案:

答案 0 :(得分:0)

这不是服务器的问题。这是因为我尝试匹配的模式包含在文件名中,这是一个路径,所以它加载了错误的程序集,如hostfrx.dllhostpolicy.dll

Assemblies

它在本地运行,因为部署项目后会出现这些程序集。