Visual studio 2010 当从InstallAllUsers==true的安装程序调用Process.Start(someUri)时失败

Visual studio 2010 当从InstallAllUsers==true的安装程序调用Process.Start(someUri)时失败,visual-studio-2010,windows-installer,custom-action,process.start,Visual Studio 2010,Windows Installer,Custom Action,Process.start,当我创建一个使用自定义安装程序类的Windows Installer安装项目并放置一个进程.Start(someUri)时如果安装项目属性installUsers设置为true,则在该自定义安装程序类中的任意位置调用Process.Start()都会失败。如果我将InstallAllUsers设置为false,则Process.Start()将按预期工作。当Start()失败时,不会抛出任何异常,调用Start()后的任何代码仍会执行,但我指定的uri不会打开 我很难找到解释。有人能解释一下为什

当我创建一个使用自定义安装程序类的Windows Installer安装项目并放置一个
进程.Start(someUri)时
如果安装项目属性
installUsers
设置为true,则在该自定义安装程序类中的任意位置调用Process.Start()都会失败。如果我将InstallAllUsers设置为false,则Process.Start()将按预期工作。当Start()失败时,不会抛出任何异常,调用Start()后的任何代码仍会执行,但我指定的uri不会打开

我很难找到解释。有人能解释一下为什么会发生这种情况吗?谢谢

编辑: 我越来越怀疑这是一个特定于铬的异常现象。Process.Start()与IE的工作原理一样。由于InstallAllUsers意味着机器级安装,我现在想知道Chrome安装到用户特定的AppData目录是否是问题的一部分(或全部)

发现了问题。帮助中的Process类示例有以下注释:

// url's are not considered documents. They can only be opened

// by passing them as arguments.

这意味着试图使用“默认浏览器”会导致问题。需要为URL指定应用程序(IExplorer.exe)

Awww。。。。我的第一枚风滚草徽章!这将写在今晚的日记中……)不确定这是否解释了为什么问题只存在于InstallAllUsers属性设置为true的安装程序类中。。。?在程序正常运行过程中(例如不安装/卸载)。开始(“url”)按预期工作。它按预期工作。。。如果检查Process.Start()的返回值,则网页的返回值将为false。因此,如果调用代码正在检查返回值,而没有检查正在执行的内容,那么它可能会错误地进行分支。实际上,它返回null,而不是false。