VB.NET Process.Start失败

时间:2013-11-27 16:20:35

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

这个问题一直困扰着我近一个星期。

我试图通过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;”),< / strong>然后失败,错误为:

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

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

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

感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

您的VB.NET程序很可能以32位模式运行,并将启动32位版本的cmd.exe。来自c:\ windows \ syswow64的那个,而不是之前使用的c:\ windows \ system32中的那个。让BadImageFormatException开始变得可能。

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