正确运行windows server server的gacutil命令语法

问题描述:

我有一个使用Pkcs12ProtectedConfigurationProvider的项目。在针对windows server 2008 sp2或r2时,在azure中使用此dll时从未遇到任何问题。但是,当我尝试使用Windows Server 2012(osFamily =“3”)部署到Azure时,出现了一个异常,指出无法找到程序集。正确运行windows server server的gacutil命令语法

我隐约记得在模拟器中遇到这个问题,解决方案是将此dll添加到GAC。我搜索了一下,发现these instructions关于如何将一个DLL安装到GAC中作为一个天蓝色的启动任务。只要我在web角色项目的根目录中有gacutil和相关的.cmd文件,所有东西都可以工作。不过,我想将其移入其中有其他启动命令的应用程序的/启动文件夹中。

到目前为止,我一直无法得到这个工作。 gacutil并不是非常有用,因为我在运行命令后无法显示任何输出。这是我曾尝试:

<Startup> 
    <!-- other tasks, such as disabling the IIS idle timeout --> 
    <Task commandLine="startup\gacRegistrations.cmd" executionContext="elevated" taskType="simple" /> 
</Startup> 
在gacRegistrations.cmd文件

在csdef文件

gacutil /nologo /i ..\PKCS12ProtectedConfigurationProvider.dll 
exit /b 0 

我认为这个问题与语法做引用的DLL位于cmd文件中。所有相关文件都设置为构建操作:无,并复制到输出目录:始终复制。但是,gacutil.exe和cmd文件被复制到webrole/bin/startup,而PKCS12ProtectedConfigurationProvider.dll文件在webrole/bin中是1个文件夹。

这里的正确语法是什么?我应该尝试gacutil /nologo /i ..\.\PKCS12ProtectedConfigurationProvider.dll吗?就像我说的,当文件没有嵌套在/ startup目录中时,一切正常。

当前目录总是bin文件夹,所以你应该尝试以下方法:

startup\gacutil /nologo /i PKCS12ProtectedConfigurationProvider.dll 
exit /b 0 
+0

是的,这做到了。谢谢您的帮助。 – danludwig