[英]The referenced project is a non self-contained executable. A non self-contained executable cannot be referenced by a self-contained executable
[英]Making a self contained executable for mac
我在Visual Studio中創建了一個.net核心控制台應用程序。 我想現在打包它作為Windows和Mac的可執行文件。
我將運行時部分添加到project.json。
這是我的projects.json基於我在這里看到的: https : //docs.microsoft.com/en-us/dotnet/articles/core/deploying/index#self-contained-application
{
"version": "1.0.0-*",
"buildOptions": {
"debugType": "portable",
"emitEntryPoint": true
},
"dependencies": {
"AngleSharp": "0.9.9",
"CsvHelper": "2.16.3",
"Microsoft.NETCore.App": {
"version": "1.0.1"
}
},
"frameworks": {
"netcoreapp1.0": {
}
},
"runtimes": {
"win10-x64": {},
"osx.10.10-x64": {}
}
}
這將在調試/發布中創建一個名為win10-x64
的文件夾,其中包含一個可執行文件但沒有osx文件夾。
我是否缺少針對此操作系統的依賴項?
答案是從命令行發布它
dotnet publish -r osx.10.10-x64
然后文件夾/osx.10.10-x64/publish/
包含一個可以在安裝了SDK的mac上運行的文件。
.NET Core不直接構建可執行文件。 雖然這是在路線圖中,但最后我檢查了(1.0.1)它還沒有這樣做。 您將在編譯時獲得一個DLL文件,您可以通過將其傳遞給dotnet二進制文件來運行該文件。 不要讓DLL擴展欺騙你,它適用於任何支持的平台。
正如另一個人說你應該做一個發布,以確保所有的應用程序文件都被復制到發布文件夾,所以他們准備捆綁,但只是復制相同的DLL文件。 我已經采用相同的發布結果並在IIS下的Windows和Kestrel下的Red Hat上運行它們。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.