从安装项目获取当前目录

时间:2016-05-05 16:25:22

标签: c#

我在Install Shield限量版Visual Studio for Windows 7中创建了一个安装项目。

在这个项目中,我需要在安装过程中运行C#应用程序作为客户操作。在这个C#应用程序中,我需要从安装项目运行的路径。 我尝试使用GetCurrentProcess().MainModule.FileNameGetExecutionAssembly()。位置或Envirement.CurrentDirectory。所有这些功能都来自应用程序。但是,如果我添加此程序以将项目设置为自定义操作在安装期间,我将获得C:\Windows.

的路径

我怎样才能获得真正的路径? 感谢

2 个答案:

答案 0 :(得分:0)

您可以获取应用程序目录

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

string directory = System.AppDomain.CurrentDomain.BaseDirectory;

string directory = Thread.GetDomain().BaseDirectory;

答案 1 :(得分:0)

您必须在自定义操作中将自定义安装程序添加到安装项目中。选择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/en-us/library/system.configuration.install.installer(v=vs.90).aspx

如果您有任何问题,请告诉我