如何在发布时包含asp.net core 2的依赖项

3
我有一个asp.net core应用程序。我将项目发布到文件夹,然后将文件同步到Linux生产服务器。
所有asp.net core 1.x版本都能很好地运行。
升级到2.0版本后,使用Microsoft.AspNetCore.All元包,asp.net core依赖项未发布到输出。我使用debian-x64创建了自包含的发布,但没有任何变化。
Linux服务器不应访问互联网,因此无法下载依赖项。
如何在发布的文件中包含所有依赖项?
1个回答

2

.NET Core 2.0新增了一个linux-x64运行时标识符,您应该发布此标识符。

dotnet publish -r linux-x64

有趣的是,使用linux-x64会导致发布过程添加文件。但我仍然无法运行已发布的应用程序。错误如下:Unhandled Exception: System.BadImageFormatException: Could not load file or assembly 'System.Runtime, Version=4.2.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' or one of its dependencies. The module was expected to contain an assembly manifest.即使发布了一个空的控制台应用程序,我仍然会遇到这个错误。 - Alireza
确实很奇怪。使用CLI在目标服务器上构建和运行控制台应用程序是否有效?(将“通用”Linux-x64分发复制到目标机器并使用dotnet new console && dotnet run - Martin Ullrich

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接