以编程方式设置Visual Studio 安装程序的路径

本文关键字:安装 程序 路径 Studio Visual 编程 方式 设置 | 更新日期: 2023-09-27 18:34:30

我是创建MSI的新手,仍在学习。这是我的问题:

我有一个包含 2 个项目的小型测试解决方案:一个简单的 WPF 应用程序和一个类库。WPF 使用类库获取要显示的随机文本。在Visual Studio 2013中创建了一个安装项目,并成功创建了一个将安装该应用程序的MSI。

我了解到我可以将"安装程序类".cs文件添加到我的一个项目中,以便能够订阅某些事件,例如"安装前"和"安装后"。我可以使用它在注册表中写入一些值,例如用户选择的安装路径。

一切都很好,但现在发生了这种情况:我决定更新类库以返回不同的文本,我需要为我的应用程序创建一个补丁,该补丁只会更新类库(dll(,而不是 wpf 应用程序本身。

为了实现这一点,我创建了另一个安装项目,向其添加了类库输出。大概我在注册表中有以前安装的安装路径,我的问题是以下几点:

如何告诉修补程序设置安装到注册表中的路径,或者如果注册表不存在,则根本不安装?我尝试在类库项目中创建一个安装程序类.cs,我可以在其中编写一些代码来从寄存器中获取路径,但我找不到在哪里设置它。

我已经阅读了不少堆栈溢出帖子,这就是我走到这一步的原因,但现在我真的很卡住。

谢谢。

以编程方式设置Visual Studio 安装程序的路径

你不需要做任何这些。在安装项目的注册表视图中,创建要存储用户输入的安装目录的项,并为其指定区分大小写的值 [TARGETDIR]。

您不能使用 VS 安装项目创建补丁,也不能使用任何工具制作实际补丁,其中唯一的更改是自定义操作代码。您可以按照如下所述进行升级:

https://www.simple-talk.com/dotnet/visual-studio/updates-to-setup-projects/

这很旧,但仍然正确。唯一的新内容是,您需要在RemovePreviousVersions升级中递增要更新的文件的文件版本。

不知道"返回不同的文本"到底是什么意思,我无法进一步提供帮助。