我有一个用 VB.NET 5.0 编写的 ClickOnce 自包含 Windows 窗体应用程序
我特意选择了 .Net 5.0 框架,以便可以将应用程序发布到完全自包含的 UNC 文件共享,这样运行应用程序的客户端就不需要在他们的机器上安装 .NET 运行时。
特别是一台没有安装 Windows 更新的机器无法安装应用程序并给出以下错误消息:
我无法在机器上安装 4.5 Full 版,但无论如何这个应用程序应该是独立的并提供运行该应用程序所需的所有资源。
如果我将整个应用程序目录从文件共享复制到机器并运行 .exe 文件,则应用程序成功运行。
为什么安装程序不从部署源中提取安装/运行应用程序所需的资源?
我在ClickOnce 错误的部署 url中也有同样的问题,它没有我正在寻找的答案。下载的 setup.exe 出于某种原因被设置为假定本地目录包含应用程序文件。解决方案是在 Internet Explorer 中打开 publish.html,这样它就可以运行而不是下载,但这似乎是错误的。
我的发布和安装位置设置为相同的值 \server<dir><app dir>
其他一些可能有用的设置是:
- 离线可用 = True(也尝试过 false)
- 应用程序将检查更新 = True(也尝试过 false)
- 选择 .Net 5.0 运行时的先决条件(我相信一旦选择了自包含部署模式,这将被取消/强制)
- 应用程序启动前更新 = True
- 签署 ClickOnce 清单 = False
- Produce single file = True (也尝试过 false ,它在手动复制目录时效果更好)
- 启用ReadyToRun编译(也试过false)