我是创建MSI的新手,还在学习。 这是我的问题:
我有一个包含2个项目的小型测试解决方案:一个简单的WPF应用程序和一个类库。 WPF使用类库来获取要显示的随机文本。 在visual studio 2013中制作了一个安装项目,并成功创建了一个将安装该应用程序的MSI。
我了解到我可以在我的一个项目中添加一个“Installer class”.cs文件,以便能够订阅某些事件,如“BeforeInstall”和“AfterInstall”。我可以使用它在注册表中写一些值,比如用户选择的安装路径。
一切都很好,但现在发生这种情况:我决定更新类库以返回不同的文本,我需要为我的应用程序创建一个补丁,它只会更新类库(dll),而不是wpf app本身。
为了实现这一点,我创建了另一个安装项目,将类库输出添加到它。据推测,我在注册表中有以前安装的安装路径,我的问题如下:
如何告诉补丁程序设置安装到我在注册表中的路径,或者如果注册表不存在则根本不安装? 我试图在类库项目中创建一个安装程序类.cs,在那里我可以编写一些代码来从寄存器中获取路径,但是我找不到在哪里设置它。
我已经阅读了不少stackoverflow帖子,这就是我如何做到这一点,但现在我真的卡住了。
谢谢。
答案 0 :(得分:0)
您无需执行任何操作。在安装项目的注册表视图中,创建要存储用户输入的安装目录的项目,并为其赋予区分大小写的值[TARGETDIR]。
您无法使用VS安装项目创建补丁,也无法使用任何仅对自定义操作代码进行更改的工具制作实际补丁。您按照此处所述进行升级:
https://www.simple-talk.com/dotnet/visual-studio/updates-to-setup-projects/
虽旧但仍然正确。唯一新的是您需要在RemovePreviousVersions升级中增加要更新的文件的文件版本。
不知道什么“返回不同的文字”意味着我无法进一步帮助。