去掉<RuntimIdentitifier>win10-x64-corert</RuntimIdentitifier>
,用dotnet publish -c Release -r win-x64
也可以生成直接可以运行的.exe文件,只是生成的目标文件夹中自带 .net core runtime。而且在windows上可以用dotnet publish -c Release -r linux-x64
生成直接在linux上运行的可执行文件。
如果使用corert,参考园子里的一篇博文:.NET Core单文件发布静态编译AOT CoreRT
你好,用dotnet publish -c Release -r win-x64还是提示错误
@屋檐不懂雨: dotnet publish -c Release
能正常执行吗?
@dudu: 能执行
@屋檐不懂雨: 你用的哪个版本 windows ?
@dudu: win10 1709
@屋檐不懂雨: 试试 dotnet publish -c Release -r win10-x64
@dudu: 还是不行
@屋檐不懂雨: dotnet -v
看一下 .net core sdk 的版本是多少?
@dudu:
2.1.4
@屋檐不懂雨: dotnet restore
可以正常运行吗?
@dudu: 可以的
@屋檐不懂雨: .csproj 中的内容是什么?
@dudu:
好像没什么变化
@屋檐不懂雨: 建议把 Microsoft .NET Core SDK 2.0.0 Preview 2 (x64)
卸载后试试
@dudu: 今天麻烦你了,我在远程家里的电脑,刚电脑重启进不去了,明天再继续请教您问题
已经卸载了,电脑也重启了,但还是不行
@dudu: 已经卸载了,电脑也重启了,但还是不行
@屋檐不懂雨: 重新安装最新的 .NET Core SDK 试试
@dudu: 你好,还是不行。我下载的时候发觉有两种sdk ,一种是从微软官网下载的exe安装包,另一种是zip压缩包,我用的是exe的,有影响吗
@屋檐不懂雨: 没影响,建议新建一个项目试试
@dudu: 还是不行
@屋檐不懂雨: 建议把错误信息复制粘贴过来(之前提供的是截图)
@dudu:
C:\Users\Administrator\source\repos\NetCore\kamenrider\kamenrider.csproj : error NU1101: Unable to find package runtime.win-x64.Microsoft.NETCore.App. No packages exist with this id in source(s): CliFallbackFolder, Microsoft Visual Studio Offline Packages
C:\Users\Administrator\source\repos\NetCore\kamenrider\kamenrider.csproj : error NU1101: Unable to find package runtime.win-x64.Microsoft.NETCore.DotNetHostPolicy. No packages exist with this id in source(s): CliFallbackFolder, Microsoft Visual Studio Offline Packages
C:\Users\Administrator\source\repos\NetCore\kamenrider\kamenrider.csproj : error NU1101: Unable to find package runtime.win-x64.Microsoft.NETCore.DotNetHostResolver. No packages exist with this id in source(s): CliFallbackFolder, Microsoft Visual Studio Offline Packages
C:\Users\Administrator\source\repos\NetCore\kamenrider\kamenrider.csproj : error NU1101: Unable to find package runtime.win-x64.Microsoft.NETCore.DotNetAppHost. No packages exist with this id in source(s): CliFallbackFolder, Microsoft Visual Studio Offline Packages
@屋檐不懂雨: 看一下C:\Program Files\dotnet\sdk\NuGetFallbackFolder
中有没有文件?
@dudu:
有的
@屋檐不懂雨: 在资源地址栏输入%AppData%\NuGet
,看一下 NuGet.Config
中的配置
@dudu:
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<packageSources>
<add key="CliFallbackFolder" value="C:\Users\Administrator\.dotnet\NuGetFallbackFolder" />
</packageSources>
</configuration>
@屋檐不懂雨: 就是这个引起的,改为下面的内容
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<packageSources>
<add key="nuget.org" value="https://api.nuget.org/v3/index.json" protocolVersion="3" />
</packageSources>
<packageRestore>
<add key="enabled" value="True" />
<add key="automatic" value="True" />
</packageRestore>
<bindingRedirects>
<add key="skip" value="False" />
</bindingRedirects>
<packageManagement>
<add key="format" value="0" />
<add key="disabled" value="False" />
</packageManagement>
</configuration>
@dudu: 已经可以了,非常感谢。可以讲一下这个文件的作用吗
@屋檐不懂雨: 见 Configuring NuGet behavior
@dudu: 嗯,谢谢