c#调用批处理文件复制dll文件到System32文件夹失败

本文关键字:System32 文件夹 失败 文件 dll 调用 批处理文件 复制 | 更新日期: 2023-09-27 17:50:27

我创建了一个批处理文件,将一些dll文件复制到System32文件夹中。我从我用c#代码编写的程序中运行了这个批处理:

string path = @"ABC'install.bat";
ProcessStartInfo procStartInfo = new ProcessStartInfo()
{
    UseShellExecute = true,
    CreateNoWindow = false,
    FileName = "'"" + path + "'"",
    //Arguments = "'"" + path + "'""
    Verb = "runas"
};
 
using (Process proc = new Process())
{
    proc.StartInfo = procStartInfo;
    proc.Start();
}

一切都很好。我收到了确认从Windows 7更改的弹出信息。控制台还证明文件已被复制:

C:'Program Files'XXX>copy commpro.dll C:'Windows'system32'
    1 file(s) copied.

但是当我查看System32文件夹时,我找不到我的dll。太奇怪了!

有人遇到这个问题吗?

编辑:我的问题与这个问题不同:如何以完全权限在C:'Windows'System32中写入文件

这里我得到了允许我授予权限写入System32文件夹的弹出框。以及"copy"的输出命令未显示"拒绝访问";但"Copied"问题是为什么它不包含我的dll,而它说"复制"div ?

如果您的应用程序是32位应用程序,那么该文件将在%windir%'SysWOW64文件夹中结束。请参阅Msdn上的此页面了解更多详细信息。

您的32位应用程序应该能够看到这个文件。

我应该指出,将dll复制到系统文件夹通常是一个坏主意,应该尽可能避免。

c#调用批处理文件复制dll文件到System32文件夹失败