【问题标题】:Installer launch application after install but cannot access network drives安装程序在安装后启动应用程序但无法访问网络驱动器
【发布时间】:2013-10-10 19:12:11
【问题描述】:

我正在使用 Windows Installer 分发桌面应用程序。在提交中,有一个自定义操作会启动刚刚安装的应用程序。它似乎运行良好,但启动的应用程序看不到映射的网络驱动器......如果我退出应用程序并从开始菜单启动它,应用程序可以毫无问题地看到网络驱动器。此应用需要从网络读取...

这是我在提交操作中使用的代码:

ProcessStartInfo^ proc = gcnew ProcessStartInfo();
proc->UseShellExecute = true;
proc->FileName=mytargetdir + "program.exe";
try
{

    Process::Start(proc);

}
catch(Exception^ e)
{
    // Do nothing and return directly ...
}

我假设我需要向进程提供当前用户凭据,但我无法预先知道它们。我可以通过 Environment 获取当前用户和域,但是密码呢...?

如何启动可以访问网络的应用程序?

【问题讨论】:

    标签: .net windows-installer


    【解决方案1】:

    被安排在提交执行中,它可能是作为 SYSTEM 启动的,它没有 与启动安装的用户相同的权限。更好的设计是在已完成的对话框上设置一个复选框,询问用户是否要启动应用程序,并在选中并单击关闭时执行此操作。这样它就以用户身份从 UI 序列启动。

    你没有提到你使用的是哪个工具,但我猜这是微软在 VS2012 中杀死的那个可怕的工具,成千上万的人在 UserVoice 上抱怨要把它带回来。他们都不理解像你现在面临的导致微软杀死它的问题。

    你可以在这里找到他们 (Visual Studio Installer > How To Launch App at End of Installer) 回答你的问题,但尽管投票数很高,但这是错误的。

    【讨论】:

    • 嗯,确实,我使用 VS2008 中的集成安装程序类作为基础。在安装和提交阶段有一些自定义操作,稍后,我使用 orca 编辑 msi。是的,我想我可以添加一个带有启动代码的新屏幕,但我想当安装程序启动时,提交仍在用户启动的过程中......很奇怪。
    • 更多信息:installsite.org/pages/en/isnews/200108 VDPROJ 的主要问题是它抽象和密封了许多底层细节。这就是我使用不同工具制作 MSI 的真正原因。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-07-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多