2013-10-10 62 views
0

我正在使用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 ... 
} 

我假设我需要提供当前用户凭据的过程,但我不可能知道他们是一个priory。我可以通过环境获取当前用户和域名,但密码是什么...?

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

回答

1

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

你没有提及你使用的是哪一种工具,但我会猜测这是微软在VS2012中杀死的那个可怕的工具,数千人在UserVoice上抱怨把它拿回来。他们都不了解像你现在面临的导致微软杀死它的问题。

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

+0

嗯,的确,我使用VS2008中的集成安装程序类作为基础。在安装和提交阶段有一些自定义操作,后来我用orca编辑msi。是的,我想我可以添加一个新的屏幕与启动代码,但我可以想象,提交仍然在用户发起的过程中,当安装程序启动......怪异。 – Aznarepse

+0

更多信息:http://www.installsite.org/pages/en/isnews/200108/ VDPROJ的主要问题是它的摘要和密封了许多潜在的细节。这是我使用不同工具来制作我的MSI的真正原因。 –