我知道這是不可能建立/兩種不同的方式,即發佈.NET核心應用:便攜式應用("type": "platform"
)和獨立的應用程序( "type": "build"
)。配置.netcore項目爲便攜式,但發佈爲自足
當我創建使用dotnet new
,project.json
默認設置爲便攜式應用的新應用:
"frameworks": {
"netcoreapp1.1": {
"dependencies": {
"Microsoft.NETCore.App": {
"type": "platform",
"version": "1.1.0"
},
"Microsoft.FSharp.Core.netcore": "1.0.0-alpha-160629"
}
}
}
它意味着我的應用程序將取決於運行時,它安裝在機器上,我將在哪裏運行該應用程序。
但是如果我決定,我想以便攜式和自包含模式發佈此應用程序呢? 當我設置類型爲build
並嘗試運行該應用程序,我收到一個錯誤,對此,我猜,預計:
C:\ TEMP \ testproj> DOTNET恢復& & DOTNET運行
log:爲C:\ temp \ testproj \ project.json恢復軟件包...
log:在C:\ temp \ testproj \ project.json中恢復工具'dotnet-compile-fsc'的軟件包。 。
log:鎖定文件沒有沒有改變。跳過鎖定文件寫入。路徑:C:\ TEMP \ testproj \ project.lock.json
日誌:C:\ TEMP \ testproj \ project.json
日誌:在1973ms恢復完成。
無法找到與目標運行時兼容的框架'.NETCoreApp,Version = v1.1'的運行時目標:'win10-x64,win81-x64,win8-x64,win7-x64'。可能的原因:
該項目尚未恢復或恢復失敗 - 運行
dotnet restore
該項目未列出的「win10-x64的一個,win81-64,win8的-64,Win7的-64 '在'運行時間'部分。
您可能試圖發佈不支持的庫。使用
dotnet pack
來分發庫。
,並使其工作,我可以設置添加一個runtimes
部分project.json
,其中會列出我目前該機的架構作爲支持之一。
的問題是: 有沒有一種方法來發布應用程序既作爲獨立的,不改變每次project.json
便攜式?
約
scripts
節謝謝您的回答。這與我想象的解決方案會有些不同。我可以通過將這種邏輯添加到構建腳本來實現相同的行爲。我雖然有沒有兩個不同的project.json文件的方式。 – derwasp