.NET Core Standalone构建将无法在MacOS上运行10.12
我将.NET Core控制台应用程序作为独立构建部署到多个平台。我无法运行macOS版本。当我运行可执行文件时,出现以下错误:.NET Core Standalone构建将无法在MacOS上运行10.12
“错误:找不到依赖项清单中指定的程序集 - package:'runtime.osx.10.10-x64.runtime.native.System',版本: '4.3.0',路径:'runtimes/osx.10.10-x64/native/System.Native.a'“
我已经构建并部署了应用程序,以win7-x86,win7-x64,win10-x86, win10-x64,centos.7-x64,全部没有任何问题。
我正试图运行Mac mini上运行macOS 10.12(塞拉利昂)的Mac构建。我试过针对osx.10.10-x64和osx.10.12-x64,并得到相同的错误。我也尝试在.NET Core 1.0.1和1.1.0下构建和发布,并且发生同样的错误。
我建立在Windows 10系统上,在每种情况下创建独立的版本。当我在Mac上安装.NET Core框架(并将应用程序构建为框架)时,我确实让我的应用程序正常运行,但我需要运行独立的构建。
我已经在Mac上通过Homebrew安装了OpenSSL,这是我知道的唯一外部依赖项。我的project.json文件如下。
任何帮助,将不胜感激!
{
"version": "1.1.0-*",
"buildOptions": {
"emitEntryPoint": true
},
"dependencies": {
"Microsoft.NETCore.App": "1.1.0",
"Newtonsoft.Json": "9.0.1",
"System.Xml.XmlSerializer": "4.3.0"
},
"frameworks": {
"netcoreapp1.1": {
"imports": "dnxcore50"
}
},
"runtimes": {
"centos.7-x64": {},
"win10-x64": {},
"win10-x86": {},
"win7-x64": {},
"win7-x86": {},
"osx.10.10-x64": {},
"osx.10.12-x64": {}
},
"description": "XXX gameplay instance server.",
"title": "XXX"
}
这似乎是一个环境问题,创建新项目,使用的码头工人,并复制你的project.json
工作为好。
docker run -v <your app folder>:/app -it --rm microsoft/dotnet:1.1.0-sdk-projectjson
容器
cd /app
dotnet restore
dotnet publish -c Release -r osx.10.12-x64
exit
内侧容器的外
chmod +x bin/Release/netcoreapp1.1/osx.10.12-x64/publish/app
./bin/Release/netcoreapp1.1/osx.10.12-x64/publish/app
测试项目链接:https://drive.google.com/open?id=0B9E5H1HYtm8DSFJMSG1CZDNyTGc
是否需要使用码头工人在这种情况下?是不是类似于docker提供的独立构建的目的,即在目标机器上运行的自包含的可移植环境? 我同意它似乎是一个环境问题,似乎发布过程不包括正确的库。如果可能的话,我宁愿修复dotnet构建过程中的核心问题。但如果这不起作用,尝试码头工人是个好主意。谢谢您的帮助! –
要明确,码头只用于发布独立的应用程序,在此之后,码头是没有必要的。您可以在没有.net或docker的新主机中复制和运行应用程序。我遇到了与独立应用程序类似的问题,Docker是隔离环境问题的最佳方式。 http://stackoverflow.com/questions/42194718/problems-with-net-core-self-contained-publish –
谢谢里卡多,我会试一试! –