我有一个 .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) 并通过这些标签进行了标记。