【问题标题】:VB.NET Process.Start failingVB.NET Process.Start 失败
【发布时间】:2013-11-27 16:20:35
【问题描述】:

一个困扰我近一周的问题。

我正在尝试通过 VB 中的命令行安装 IIS。我知道我需要设置一个无人参与的 xml 脚本来调用,但这里有一个让我感到困惑的基本点:

如果我运行命令:'start /w pkgmgr /iu:IIS-WebServerRole;IIS-WebServer;'它会在 CMD.exe 中完美执行。

如果我将命令添加到批处理文件并运行批处理文件,它会完美运行。

如果我使用以下命令调用命令:Dim myProcess As Process = Process.Start("cmd.exe", "/k start /w pkgmgr /iu:IIS-WebServerRole;IIS-WebServer;"), 然后它失败并出现以下错误:

/////////////////////////////////////// ///////////////////////////////////////// ///////////
操作失败,出现 0x8007000B                            ////
////
试图以不正确的格式运行程序 ////
///////////////////////////////////////// ///////////////////////////////////////// ////

如果我调用前面提到的批处理文件,那么我会得到完全相同的错误。

它如何与前两个示例完美配合,但在通过 VB 调用时却失败了?

感谢您的帮助!

【问题讨论】:

标签: vb.net iis batch-file cmd process.start


【解决方案1】:

您的 VB.NET 程序很可能在 32 位模式下运行,并将启动 32 位版本的 cmd.exe。来自 c:\windows\syswow64 的那个,而不是您之前使用的来自 c:\windows\system32 的那个。越来越有可能出现 BadImageFormatException。

Project + Properties,Compile选项卡,将Target CPU设置为AnyCPU并取消勾选“Prefer 32-bit”选项。在旧版本的 VS 上,单击 Advanced Compile Options 按钮进入设置。

【讨论】:

  • 最佳响应。感谢您的快速回复!它似乎正在运行安装。
猜你喜欢
  • 2014-03-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-01-27
  • 1970-01-01
相关资源
最近更新 更多