需求是,在系统中需要调用bat文件,然后bat调用一个exe文件,exe文件中通过gacutil.exe这个命令向gac中注册了一些dll,
问题是,程序中bat文件可以成功调用,bat调用exe文件也没有问题,只是exe文件中的gacutil.exe这个命令执行不了,在线急等,万分感激,
c#代码
            string path =Server.MapPath("dll文件/Register.bat");
            System.Diagnostics.Process.Start(path);
 bat 代码
@echo offgacutil.exe -u DevExpress.Data.v11.1
mkdir %windir%\assembly\GAC_MSIL\DevExpress.Data.v11.1\11.1.8.0__b88d1754d700e49a
copy DevExpress.Data.v11.1.dll %windir%\assembly\GAC_MSIL\DevExpress.Data.v11.1\11.1.8.0__b88d1754d700e49agacutil.exe -u DevExpress.XtraRichEdit.v11.1.Extensions
mkdir %windir%\assembly\GAC_MSIL\DevExpress.XtraRichEdit.v11.1.Extensions\11.1.8.0__b88d1754d700e49a
copy DevExpress.XtraRichEdit.v11.1.Extensions.dll %windir%\assembly\GAC_MSIL\DevExpress.XtraRichEdit.v11.1.Extensions\11.1.8.0__b88d1754d700e49a.
.
.
.

解决方案 »

  1.   

    如果格式都正确,一般是权限问题。asp.net通常是以匿名帐号运行,没有这样高的权限。你需要在应用程序池标识或者采用模拟的方法提升2权限/
      

  2.   

    是因为你的批处理文件所在的目录下不认识gacutil.exe,原因是通过环境变量根本找不到"C:\Program Files\Microsoft Visual Studio 8\SDK\v2.0\Bin\gacutil.exe" -u DevExpress.Data.v11.1
    mkdir %windir%\assembly\GAC_MSIL\DevExpress.Data.v11.1\11.1.8.0__b88d1754d700e49a
    copy DevExpress.Data.v11.1.dll %windir%\assembly\GAC_MSIL\DevExpress.Data.v11.1\11.1.8.0__b88d1754d700e49a"C:\Program Files\Microsoft Visual Studio 8\SDK\v2.0\Bin\gacutil.exe" -u DevExpress.XtraRichEdit.v11.1.Extensions
    mkdir %windir%\assembly\GAC_MSIL\DevExpress.XtraRichEdit.v11.1.Extensions\11.1.8.0__b88d1754d700e49a
    copy DevExpress.XtraRichEdit.v11.1.Extensions.dll %windir%\assembly\GAC_MSIL\DevExpress.XtraRichEdit.v11.1.Extensions\11.1.8.0__b88d1754d700e49a
    具体的路径可按机器中安装的路径去进行更改。另外,注册的参数应当是-i,-u是从GAC中移除
      

  3.   


    正解,楼主检查一下权限 IISUSER属性和EveryOne属性权限