0

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

我没有太多运气为此找到解释。任何人都可以解释为什么会这样吗?谢谢!

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

4

1 回答 1

1

http://msdn.microsoft.com/query/dev10.query?appId=Dev10IDEF1&l=EN-US&k=k(SYSTEM.DIAGNOSTICS.PROCESS);k(PROCESS);k(TargetFrameworkMoniker-%22.NETFRAMEWORK%2cVERSION%3dV4 .0%22);k(DevLang-CSHARP)&rd=true

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

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

// by passing them as arguments.

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

于 2012-02-03T16:47:14.710 回答