我正在为我的应用程序创建一个MSI包。要求是,如果在客户端计算机上安装了应用程序A
,则此新设置应安装在该应用程序文件夹中。否则它应该创建自己的文件夹。
我已经创建了自定义安装程序。我已经覆盖了OnInstall
,OnBeforeInstall
等方法,但对TARGETDIR
没有影响。
即使我这样写:
this.Context.Parameters["TARGETDIR"] = new_path;
它仍会将其安装到旧路径,该路径设置为安装项目的DefaultLocation
Tab的ApplicationFolder
属性。
有谁知道如何解决这个问题?
答案 0 :(得分:0)
无法在VS安装项目中完成,因为安装完成后几乎所有自定义操作都已运行,因此更改安装文件夹为时已晚。 VS安装项目不支持尽早运行CA来执行此操作。
答案 1 :(得分:0)
如果该其他应用的注册表路径位于注册表项中,您可以通过搜索执行此操作。
在启动条件下,搜索目标计算机,为该注册表项添加注册表搜索,它将进入大写属性名称,默认为REGISTRYVALUE1,类似于此。
在“文件系统”视图中,右键单击目标计算机上的文件系统,然后添加特殊文件夹,自定义文件夹。创建默认位置[TARGETDIR](默认情况下应该是这样)并使属性成为注册表属性名称,即REGISTRYVALUE1。
您的文件进入该自定义文件夹。
如果可行,文件将转到程序文件中的默认目标目录,除非该路径存在,然后它们应该进入那里。但是,有一个对话框供用户选择安装文件夹,因此我不知道您打算如何处理。