我知道这是不可能建立/两种不同的方式,即发布.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