如何为自包含的跨平台.NET Core应用程序指定目标运行时?

问题描述 投票:0回答:1

我有一个.NET Core控制台应用程序,并希望使其成为一个针对Windows和Mac OS X的自包含应用程序。

根据我正在遵循的教程,这样做的方法是编辑项目文件。

为了使它成为一个独立的Windows应用程序,我添加了这一行。

<RuntimeIdentifiers>win10-x64</RuntimeIdentifiers>

这按预期工作,我可以发布应用程序,一切正常。现在,根据教程,要定位Mac OS X和Windows,您需要像这样更改该行。

<RuntimeIdentifiers>win10-x64;osx.10.12-x64</RuntimeIdentifiers>

但是,当我把它放入并尝试将更改保存到项目文件时,我遇到以下错误。

与Debug文件夹相关:

“HasTrailingSlash”函数只接受标量值,但其参数“$(OutputPath)”的计算结果为“bin \ Debug \ netcoreapp2.0 \ win10-x64; osx.10.12-x64 \”,这不是标量值。 C:\ Program Files(x86)\ Microsoft Visual Studio \ 2017 \ Professional \ MSBuild \ 15.0 \ Bin \ Microsoft.Common.CurrentVersion.targets

与Release文件夹相关:

“HasTrailingSlash”函数只接受标量值,但其参数“$(OutputPath)”的计算结果为“bin \ Release \ netcoreapp2.0 \ win10-x64; osx.10.12-x64 \”,这不是标量值。 C:\ Program Files(x86)\ Microsoft Visual Studio \ 2017 \ Professional \ MSBuild \ 15.0 \ Bin \ Microsoft.Common.CurrentVersion.targets

一旦我离开所有警告,项目文件仍然保存。它们出现了好几次。具体来说,有4个关于调试路径的警告和2个关于释放路径的警告(保存尝试次数?)。

enter image description here enter image description here

当我关闭解决方案然后再次打开它时,此特定项目拒绝加载。它只是作为未加载的项目位于解决方案资源管理器中。

enter image description here

如果我尝试重新加载它,我会得到一个漂亮的小红色,严重错误图标以及相同的消息。

enter image description here

为什么会发生这种情况,似乎是什么问题?请注意,在Windows机器上以Windows和Mac OS X为目标进行自包含部署的适当方法是什么?

编辑项目文件仍然是一种有效的方法吗?我关注的教程于2017年8月由“对云有热情的软件架构师和开发人员”发布。他对他编辑项目文件的方法做了评论,称当前的工具“不稳定”。

更新


<RuntimeIdentifiers>win10-x64;osx.10.12-x64</RuntimeIdentifiers>

这不是我输入的内容。

相反,这就是我在代码中所拥有的。请注意单数形式。

<RuntimeIdentifier>win10-x64;osx.10.12-x64</RuntimeIdentifier>

问题在于我没有注意,也没有手动输入。我使用了代码自动完成(IntelliSense),只是通过这些标签进行选项卡。

visual-studio .net-core runtime-identifier
1个回答
0
投票

一个RID

对于仅一个运行时标识符(RID),您可以使用XML运行时标识符标记的单数或复数形式。

<RuntimeIdentifier>win10-x64</RuntimeIdentifier>

要么

<RuntimeIdentifiers>win10-x64</RuntimeIdentifiers>

多个RID

对于多个RID,您必须使用复数形式的XML运行时标识符标记。

<RuntimeIdentifiers>win10-x64;osx.10.12-x64</RuntimeIdentifiers>

© www.soinside.com 2019 - 2024. All rights reserved.