.net-core - 使用 MSI 安装程序部署 .NET 5 WPF 应用程序
问题描述
有没有人使用 Visual Studio 安装项目来部署 .NET 5 WPF 桌面应用程序?多年来我一直在做这些事情,但是在 .NET 5 中,事情似乎发生了一些变化。我尝试按照本文中 MS 提供的步骤进行操作,主要针对 .NET Core 3.1,但我找不到任何特定于 .NET 5 的内容。
与 .NET Framework WPF 应用程序不同,我们将主项目输出添加到安装程序项目中,本文要求我将已发布项目添加到安装程序中。我这样做了,但现在无法在用户桌面或开始菜单上创建“快捷方式”,因为快捷方式要求我选择一个可执行文件,在这种情况下我没有。
一个稍微不同但相关的问题是我无法在安装程序项目中选择我的应用程序的图标,因为我在安装程序中没有我的 WPF 项目的主要输出。
解决方案
好的。经过更多的实验,我发现了以下内容:
- 创建指向已发布项目的快捷方式是可以的。当用户在安装后单击此快捷方式时,它只会在您发布的文件夹中打开可执行文件。所以不需要Primary Project Output。
- 要将应用程序图标用于快捷方式和添加/删除程序,只需将ico文件手动添加到安装文件夹并将其Exclude属性设置为true。这样,它将在图标浏览对话框中可用,但不会注入用户的安装文件夹。
我还发现了一些我不需要的高级解决方案,但可能对其他人有帮助。供应商自己的这篇文章教授了一种通过脚本修改安装程序数据库的方法,而这篇相关的 SO 文章显示了使用安装程序 UI 组件执行相同操作的技巧。
推荐阅读
- google-apps-script - 通过 Google App Script 在 Firestore 中创建文档时出错
- json - 在 React JS 中出现错误:SyntaxError:JSON.parse:JSON 数据的第 1 行第 1 列出现意外字符?
- c# - 如何仅在修剪动态大小文本块的文本时显示工具提示?
- java - ConcurrentMessageListenerContainer 在分区存在时减少并发计数
- asp.net-core - 如何在 Blazor 客户端项目的 pages 文件夹中添加子文件夹
- windows - 无法使用来自 etc\hosts 的主机别名访问远程路径
- python - 在python中分离条形图的组
- angular - 有什么用!在组件中登录属性声明
- d3.js - D3 - 响应式显示/隐藏条形顶部的条形总数
- python - 为什么 numpy 随机种子没有保持固定,但 RandomState 在并行运行时是固定的?