C# 进程找不到指定的文件

C# 进程找不到指定的文件,c#,process,architecture,32bit-64bit,C#,Process,Architecture,32bit 64bit,我有以下问题: 我有一个C#应用程序,在我的64位机器上作为32位应用程序运行。此应用程序打开一个进程并启动wbadmin以备份C驱动器 现在:当我在命令行中调用enter“wbadmin”时,wbadmin工作并显示它的所有命令 在我的c#app中 ProcessStartInfo info=newprocessstartinfo(“wbadmin”,“$”启动备份-备份目标:{destinationDrive}-包括:C:-安静-虚拟现实”) { UseShellExecute=false

我有以下问题:

我有一个C#应用程序,在我的64位机器上作为32位应用程序运行。此应用程序打开一个进程并启动
wbadmin
以备份C驱动器

现在:当我在命令行中调用enter
“wbadmin”
时,wbadmin工作并显示它的所有命令

在我的c#app中

ProcessStartInfo info=newprocessstartinfo(“wbadmin”,“$”启动备份-备份目标:{destinationDrive}-包括:C:-安静-虚拟现实”)
{
UseShellExecute=false
};
流程p=新流程()
{
StartInfo=info,
EnableRaisingEvents=true
};
p、 Start();
它告诉我无法找到指定的文件。 我做了一些研究,我想我的应用程序正在
WOW64
文件夹中查找
wbadmin
,但在那里找不到它,因为它位于
System32
文件夹中

如何告诉我的程序在正确的位置使用正确的
wbadmin.exe

我是否必须将应用程序作为64位应用程序运行才能正常工作? 如果是,我将如何支持32位体系结构


感谢@PavelAnikhouski为我提供了正确的答案


我必须指定sysnative的路径。

你确定你的应用程序是32位的吗?
Environment.Is64BitProcess
说明了什么?您可以为您的
ProcessStartInfo
指定
WorkingDirectory
,请查看@MarcGravell Environment.Is64BitProcess为false。我在VisualStudio中使用该设置进行调试AnyCPU@PavelAnikhouski我应该将WorkingDirectory设置为什么?系统32?当我的应用程序以32位运行时,是否会自动将其更改为WOW64?@calgara12是的,请尝试指定
system32
或使用
wbadmin
的绝对路径。还要检查您是如何从命令行运行它的,是否具有管理员权限。