【发布时间】:2014-12-16 13:29:29
【问题描述】:
我是创建 MSI 的新手,还在学习中。 这是我的问题:
我有一个包含 2 个项目的小型测试解决方案:一个简单的 WPF 应用程序和一个类库。 WPF 使用类库来获取要显示的随机文本。 在 Visual Studio 2013 中做了一个安装项目,并成功创建了一个将安装应用程序的 MSI。
我了解到我可以将“安装程序类”.cs 文件添加到我的一个项目中,以便能够订阅某些事件,例如“BeforeInstall”和“AfterInstall”。我可以使用它在注册表中写入一些值,例如用户选择的安装路径。
一切都好,但现在发生了这种情况:我决定更新类库以返回不同的文本,并且我需要为我的应用程序创建一个补丁,它只会更新类库(dll),而不是 wpf 应用程序自己。
为了实现这一点,我创建了另一个安装项目,将类库输出添加到其中。大概我在注册表中有以前安装的安装路径,我的问题如下:
如何告诉补丁设置安装到我在注册表中的路径,或者如果注册表不存在则根本不安装? 我试图在类库项目中创建一个安装程序类.cs,我可以在其中编写一些代码来从寄存器中获取路径,但是我找不到在哪里设置它。
我已经阅读了很多 stackoverflow 帖子,这就是我走到这一步的原因,但现在我真的被困住了。
谢谢。
【问题讨论】:
-
我发现我可以添加一个启动条件来搜索目标机器的注册表,但我无法让它工作。
-
也找到了这个链接,试着按照他们说的做,但它们并不具体,我真的无法理解。此外,该帖子来自 2007 年:blogs.msdn.com/b/astebner/archive/2005/09/20/472125.aspx
-
经过进一步研究,我发现这个链接正是我需要的,但它似乎不起作用。它显示“无法访问网络位置 \MyApp”。我按照这里的说明进行操作:support.microsoft.com/kb/827026
标签: c# wpf visual-studio-2013 installation setup-project