System.Reflection.Assembly asm = System.Reflection.Assembly.GetExecutingAssembly();
string aLocalPath = asm.Location;这个可以获取物理路径。如果采用Context的话需要
在文本框的属性条中的属性要对应定义到自定义操作中的CustomActionData中去格式为:/PathName=[PATHNAME]
Context.Parameter["PathName"]用法在文本框中路径条的属性为PATHNAME

解决方案 »

  1.   

    不需要获取物理路径,只要网络路径就可以了,最主要的还是获取用户输入的虚拟目录的名称。你的尽的在文本框属性条设定,这个文本框是安装程序自动生成的,无法找到。另注:本人是使用VS.NET自带的安装程序
      

  2.   

    你要是利用提供的界面做安装,Microsoft只提供了Context.Parameter["assemblypath"]这个属性,即如果你输入了test的话 这个值是x:\inetpub\wwwroot\test\x.dlltest即名,将之取出转为http://DNS.GetHostName()//test不就可以了吗?
      

  3.   

    谢谢!其实这里的问题已解决了,
    象你说的取出“test”就可以了。不过对于建立快捷方式来说还是有点欠缺。
    我是想最好能够获取用户机上的默认站点的网络路径,再把这个路径+虚拟目录名称写入到快捷方式里面,这样才算完善。也可以更改用户机的默认站点,检测假如主机头是“localhost”,就不更改,否则一律改为“localhost”。还是非常感谢!
    结贴!