1

我有一个 .NET Core 控制台应用程序,并希望使其成为面向 Windows 和 Mac OS X 的独立应用程序。

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

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

<RuntimeIdentifiers>win10-x64</RuntimeIdentifiers>

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

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

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

与调试文件夹相关:

“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

与发布文件夹相关:

“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 个警告(保存尝试次数?)。

在此处输入图像描述 在此处输入图像描述

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

在此处输入图像描述

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

在此处输入图像描述

为什么会发生这种情况,似乎是什么问题?请告知,针对 Windows 和 Mac OS X 在 Windows 机器上进行独立部署的适当方法是什么?

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

更新


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

不是我输入的内容。

相反,这就是我的代码中的内容。注意单数形式。

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

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

4

1 回答 1

2

一个 RID

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

<RuntimeIdentifier>win10-x64</RuntimeIdentifier>

或者

<RuntimeIdentifiers>win10-x64</RuntimeIdentifiers>

多个 RID

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

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

于 2018-03-19T14:25:22.277 回答