Visual Studio Installer文件系统(File system)安装条件(Condition)出错以及解决办法

笔者最近在Visual Studio 2010中使用Visual Studio Installer创建安装项目时碰到了一个非常奇怪的问题。

笔者想做一个installer,需要往一个已经安装过的软件目录下复制文件,但是该安装的软件不同的版本的路径地址不一样,所以需要设置文件安装条件。

笔者参考http://msdn.microsoft.com/zh-cn/library/vstudio/e7e70ac3(v=vs.100).aspx ,

首先在Lauch Condition中添加了注册表搜索条件,将第一个注册表搜索条件命名为SEARCHFOR2013PATH


然后,在File System 添加一个自定义文件夹,将需要安装的文件拖到此文件夹中,假设其中的一个文件时1.txt,需要将1.txt安装到2013PATH下的bin文件夹下

一开始的时候,笔者在DefaultLocation中设为[SEARCHFOR2013PATH]\bin,并直接将1.txt放置于FileSystem的2013Bin下面,后来发现,不管注册表中有没有检索到2013的path,1.txt都会去安装,如果注册表搜索结果为空,那么在安装的时候就会报“Cannot access network location bin”的错误,这个问题困扰了笔者1天,不管试什么样的条件,True 或者 False,都不行。

后来终于找到一个解决办法,参考了http://stackoverflow.com/questions/3135239/how-do-i-specify-visual-studio-installer-conditions

这个是VS的小trick,我觉得也算是一个bug了,需要在安装文件的目录下面建立一个子文件夹,将子文件的安装条件设置成SEARCHFOR2013PATH,同时,在File System下面的文件夹节点的DefaultLocation可以设置为子文件夹的上级目录,然后,还需要对这个文件夹(bin)下的每个文件设置condition为SEARCHFOR2013PATH,这样就可以执行条件安装了。如上图所示。

真想吐槽一下微软。。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值