从安装程序项目中获取当前目录

3
我在Visual Studio中使用Install Shield Limited Edition为Windows 7创建了一个安装程序。
在这个项目中,我需要在安装期间运行一个C#应用程序作为“Customer Action”。在这个C#应用程序中,我需要获取设置项目运行的路径。我尝试使用GetCurrentProcess().MainModule.FileNameGetExecutionAssembly(). Location或Envirement.CurrentDirectory等函数。所有这些函数都能够从应用程序中正常工作。但是,如果我将此程序添加到设置项目中作为“Custom Action”,我将得到指向C:\Windows的路径。
我应该如何获取真实路径?谢谢!
2个回答

3

您需要在Custom Actions面板中将自定义安装程序添加到您的安装项目中。选择Install操作并设置CustomActionData属性为:

/targetdir="[TARGETDIR]\"

然后你可以像这样访问路径:
[RunInstaller(true)]
public partial class CustomInstaller : System.Configuration.Install.Installer
{
    public override void Install(System.Collections.IDictionary stateSaver)
    {
        base.Install(stateSaver);
        string path = this.Context.Parameters["targetdir"]; 
        // Do something with path.
    } 
}

更多信息请参考https://msdn.microsoft.com/zh-cn/library/system.configuration.install.installer(v=vs.90).aspx

如果您遇到任何问题,请告诉我。


1

你可以获取应用程序目录

string directory = System.IO.Path.GetDirectoryName(Assembly.GetEntryAssembly().Location);

或者

string directory = System.AppDomain.CurrentDomain.BaseDirectory;

或者

string directory = Thread.GetDomain().BaseDirectory;

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接