目前安装目录找到了,有两种方法,都可以找到,如下:
1。string strPath = System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location); //安装目录
2。 string strTargetPath = Context.Parameters["setuppath"]; //setuppath 这个值是在该重写类库 的customActionData 处设定参数 /setuppath="[TARGETDIR]\" (如何弄就不详说了,又需要可以m我)
关键是现在我 需要找我安装包所在的路径,不知道怎样找。
在网上搜了很多资料,没找到啥有用的信息,刚刚又不死心的用“重写install 安装包当前路径”关键字百度了一下,还是没有找到。
各位经过的高手,谁知道如何取得,帮个忙。
帮顶的也有分哦。^__^
谢谢啦
15 个解决方案
#1
#2
难道分数不够高?
#3
setup Factory _SourceFolder
Assembly Asm = Assembly.GetExecutingAssembly();
string filePath= Asm.Location;
Assembly Asm = Assembly.GetExecutingAssembly();
string filePath= Asm.Location;
#4
安装包所在的路径就是程序运行的路径啊 难道这个安装包不是你做的?
#5
安装包直接打 不好用吗
#6
增加这个动作的目的就是为了不用每次针对不同的客户都要打一个安装包,增加程序的灵活性,要知道打一次安装包必须在开发的环境上,有vs,有源代码,每次打都需要10分钟,这时间可是黄金阿。
#7
xrongzhen :安装包所在的路径就是程序运行的路径啊 难道这个安装包不是你做的?
回复:呵呵,看来你没看懂我需求。我是要在重写install的时候找到安装包当前的路径。关键是我要怎么找安装包所在路径阿,
回复:呵呵,看来你没看懂我需求。我是要在重写install的时候找到安装包当前的路径。关键是我要怎么找安装包所在路径阿,
#8
这个方法取到的是安装目录下重写安装类库的路径,还是不行啊。
看来还是我说的不清楚。
举个例子来说:程序打包后是setup.exe,我把它放在路经 F:\soft\mysetup\ 路经下,同时一起放进去的有文件set.xml
我双击setup.exe,开始执行安装,这里面用户可以指定安装目录,例如C:\Program Files\MYTestProgram\
重写install方法是要在安装的时候,能把F:\soft\mysetup\set.xml 文件复制到 C:\Program Files\MYTestProgram\ 里。
目前我是不知道怎样才能找到F:\soft\mysetup\set 这个目录,
#9
根据我的经验,普通的.net打包程序,无法实现此功能
#10
不会吧,幸亏项目不是很紧,继续等待解决方案。
相信这么寻常的需求,肯定有解决方法。
相信这么寻常的需求,肯定有解决方法。
#11
你错了,高估了微软的水平,你开以一直等着,将来总会有个版本实现此功能
#12
办法不是没有,比较复杂,
假设你的安装文件为setup.exe,
1新建一个exe 为A.exe
2copy A.exe + setup.exe setup.exe
A.exe的功能:
获取自己的路径,启动真实的setup.exe,创建监听管道,在你的setup.exe中请求管道给你发送路径字符串,完成。
绝大多数情况下,没有必要做这么大的动静。
假设你的安装文件为setup.exe,
1新建一个exe 为A.exe
2copy A.exe + setup.exe setup.exe
A.exe的功能:
获取自己的路径,启动真实的setup.exe,创建监听管道,在你的setup.exe中请求管道给你发送路径字符串,完成。
绝大多数情况下,没有必要做这么大的动静。
#13
是啊,我也考虑过这种情况,但是这样做起来与初衷相悖阿。
#14
哎,还没解决阿,不知道用cmd命令能不能获取当前执行安装程序的路径
#15
无满意答案,结贴了
#1
#2
难道分数不够高?
#3
setup Factory _SourceFolder
Assembly Asm = Assembly.GetExecutingAssembly();
string filePath= Asm.Location;
Assembly Asm = Assembly.GetExecutingAssembly();
string filePath= Asm.Location;
#4
安装包所在的路径就是程序运行的路径啊 难道这个安装包不是你做的?
#5
安装包直接打 不好用吗
#6
增加这个动作的目的就是为了不用每次针对不同的客户都要打一个安装包,增加程序的灵活性,要知道打一次安装包必须在开发的环境上,有vs,有源代码,每次打都需要10分钟,这时间可是黄金阿。
#7
xrongzhen :安装包所在的路径就是程序运行的路径啊 难道这个安装包不是你做的?
回复:呵呵,看来你没看懂我需求。我是要在重写install的时候找到安装包当前的路径。关键是我要怎么找安装包所在路径阿,
回复:呵呵,看来你没看懂我需求。我是要在重写install的时候找到安装包当前的路径。关键是我要怎么找安装包所在路径阿,
#8
这个方法取到的是安装目录下重写安装类库的路径,还是不行啊。
看来还是我说的不清楚。
举个例子来说:程序打包后是setup.exe,我把它放在路经 F:\soft\mysetup\ 路经下,同时一起放进去的有文件set.xml
我双击setup.exe,开始执行安装,这里面用户可以指定安装目录,例如C:\Program Files\MYTestProgram\
重写install方法是要在安装的时候,能把F:\soft\mysetup\set.xml 文件复制到 C:\Program Files\MYTestProgram\ 里。
目前我是不知道怎样才能找到F:\soft\mysetup\set 这个目录,
#9
根据我的经验,普通的.net打包程序,无法实现此功能
#10
不会吧,幸亏项目不是很紧,继续等待解决方案。
相信这么寻常的需求,肯定有解决方法。
相信这么寻常的需求,肯定有解决方法。
#11
你错了,高估了微软的水平,你开以一直等着,将来总会有个版本实现此功能
#12
办法不是没有,比较复杂,
假设你的安装文件为setup.exe,
1新建一个exe 为A.exe
2copy A.exe + setup.exe setup.exe
A.exe的功能:
获取自己的路径,启动真实的setup.exe,创建监听管道,在你的setup.exe中请求管道给你发送路径字符串,完成。
绝大多数情况下,没有必要做这么大的动静。
假设你的安装文件为setup.exe,
1新建一个exe 为A.exe
2copy A.exe + setup.exe setup.exe
A.exe的功能:
获取自己的路径,启动真实的setup.exe,创建监听管道,在你的setup.exe中请求管道给你发送路径字符串,完成。
绝大多数情况下,没有必要做这么大的动静。
#13
是啊,我也考虑过这种情况,但是这样做起来与初衷相悖阿。
#14
哎,还没解决阿,不知道用cmd命令能不能获取当前执行安装程序的路径
#15
无满意答案,结贴了