已发布的 .Net Core 应用程序提示安装 .Net Core ,但它已经安装了。

10
我为某人制作了一个WPF和控制台应用程序,供他们在他们的私有服务器上使用,但我无法访问。 我使用Visual Studio 2019内置的“发布向导”创建了Framework Dependant单文件应用程序。 当该人打开WPF应用程序时,他们会看到标准警告:

消息框显示警告:要运行此应用程序,您必须安装.Net Core。您现在要下载吗?

他们点击了是,据我了解,他们安装了应用程序所针对的 .Net Core 3.1。

重启计算机后,他们再次收到完全相同的警告。我不确定发生了什么事情,因此我将应用重新打包为自包含的,因为已安装的 .Net Core 版本与我的应用程序针对的版本相同。

那似乎起初是有效的。我们遇到了一些代码方面的问题,这是我必须在我的端口进行修复的无关问题,然后我重新发布了项目并将其发送出去。

他们试图使用WPF应用程序,但他们再次收到安装警告。

现在,无论我在“发布向导”中选择什么组合选项,他们都会收到警告。

我不知道该怎么办。

这是我的发布设置图片:

一张图片描述了发布WPF应用程序的个人设置。


1
你有在其他电脑或虚拟机上尝试过吗?如果只在一个电脑上出现问题,那很可能是该电脑出现了严重的故障。可能需要重新安装Windows系统。 - Christopher
很遗憾,我可以要求那个人尝试一下,但这不在我的控制范围内。 - Christopher Johnson
1
这个人正在运行服务器,但显然无法为您提供适当的屏幕截图。那是一张手机相机的图片 - 而且还被放大了,我们无法确定消息框上是否还有其他内容。所以我真的怀疑问题出在他这边。 - Christopher
1
只需按下 PrtScn(打印屏幕)按钮即可截取桌面的截图。在对话框上按下 Ctrl+C 将复制标题、完整文本和按钮文本。现在,我们甚至无法猜测错误消息是什么 - 标题是否要求使用不同的运行时版本? - Panagiotis Kanavos
1
他们还应该运行 dotnet --version 并发送结果。 - Panagiotis Kanavos
很奇怪。标题只是应用程序名称,他们在服务器和笔记本电脑上尝试了一遍,发现相同的警告弹出,他们运行了“dotnet--version”,服务器正在运行“3.1.100”,而笔记本电脑则运行“3.0.100”。目前,我将把逻辑提取到一个.Net Framework解决方案中,以使其正常运行。 - Christopher Johnson
2个回答

13

在我的情况下,我也遇到了相同的问题,原因是我没有部署 "MY_PROGRAM_NAME.runtimeconfig.json" 文件。将该文件复制到生成的输出目录中后,应用程序就可以正常启动。


我同意这是你需要做的事情之一,但即使我这样做,也并不总能帮助我。 - RudolfJan
正是我的问题,谢谢。你知道为什么吗?X - TinyRacoon
不,我的情况下已经部署了。 - Denis G. Labrecque

5
原来问题在于这些应用程序针对的是 win-x86,而用户只能访问 .Net Core 的 64 位运行时。不知何故,我认为即使运行着 64 位运行时,它也能处理 32 位版本。我想这就是人生经验吧。

1
@RudolfJan 我会假设我只是针对64位构建进行了定位,这种情况已经很久没有发生了。 - Christopher Johnson
1
谢谢您的回复。虽然还是有点困惑,但我现在想我已经找到了一个可行的解决方案,尽管并不真正理解其中的原理... 有一个发布选项可以设置发布配置文件。它会创建一个包含许多dll文件的长列表,我不知道为什么这是必要的,并且它提供了一些部署选项。我可能需要把我所理解的写下来,然后检查我的理解是否正确。 - RudolfJan
你的自我内容发布文件中是否包含了NetCore? - dellos
Dellos,这件事发生在2019年,我对这个项目一无所知。 - Christopher Johnson
糟糕,我的另一个项目意外地引用了未使用的ASP.NET Core。 - TimTIM Wong
显示剩余2条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接