无法将ChilkatDotNet4.dll注册到GAC

时间:2010-06-23 19:47:43

标签: dll .net-4.0 gac gacutil

我正在尝试向GAC添加.NET 4.0 .dll。我试图这样做是因为它是由第三方公司发布的32和64位.dll我必须在不同平台上的不同应用程序中使用这两种格式。

无论如何,我无法在Windows Server 2008环境中将此dll注册到GAC。

我尝试将本地计算机上“C:\ Program Files(x86)\ Microsoft SDKs \ Windows \ v7.0A \ bin \ NETFX 4.0 Tools”中找到的gacutil.exe(和支持文件)复制到“C” :\ Windows \ Microsoft.NET \ Framework \ v4.0.30319“目标生产服务器上的文件夹,根据找到的建议here

然后我尝试将它们复制到“C:\ Windows \ Microsoft.NET \ Framework64 \ v4.0.30319”。

从两个位置运行表明安装成功。事实上,注册似乎是成功的:

  • C:\的Windows \ Microsoft.NET \组件\ GAC_64 \ ChilkatDotNet4 \ v4.0_9.0.8.0__eb5fc1fc52ef09bd \ ChilkatDotNet4.dll
  • C:\的Windows \ Microsoft.NET \组件\ GAC_32 \ ChilkatDotNet4 \ v4.0_9.0.8.0__eb5fc1fc52ef09bd \ ChilkatDotNet4.dll

但是,使用以下消息运行引用dll错误的(64位)版本的控制台应用程序:

  

System.IO.FileNotFoundException:可以   不加载文件或程序集   'ChilkatDotNet4.dll'或其中一个   依赖。指定的模块   无法找到。文件名:   'ChilkatDotNet4.dll'

所以,我现在已经使用mkdir手动创建了以下GAC条目并从命令提示符复制(实际上可能有也可能没有。我不知道gacutil.exe有什么特别之处):

  • C:\ Windows \ Microsoft.NET \ assembly \ GAC_MSIL \ ChilkatDotNet4 \ v4.0_9.0.8.0__eb5fc1fc52ef09bd \ ChilkatDotNet4.dll(使用64位版本的dll)
  • C:\的Windows \组件\ GAC_64 \ ChilkatDotNet4 \ v4.0_9.0.8.0__eb5fc1fc52ef09bd \ ChilkatDotNet4.dll
  • C:\的Windows \组件\ GAC_32 \ ChilkatDotNet4 \ v4.0_9.0.8.0__eb5fc1fc52ef09bd \ ChilkatDotNet4.dll

在每次“安装”dll之后,我测试并收到了同样的错误。欢迎任何想法!


编辑:上述GAC问题实际上可能不是罪魁祸首。事实证明,即使我创建一个全新的Console App项目并直接添加.dll(以便它存在于bin中),我仍然无法在服务器上运行它。此外,我注意到Console应用程序是针对.NET 4.0 Client Profile而不是.NET Framework 4创建的。当我尝试针对客户端配置文件运行它时,似乎没有System.Web *库可用。但是,我尝试运行一个非常简单的测试应用程序,同时针对两者,并且在引用坏.dll时都不会在服务器上运行。

运行.NET 4.0控制台应用程序是否会出现一种特殊的安装方式?

1 个答案:

答案 0 :(得分:35)

对于将来可能遇到此问题的其他人。这不是我向GAC注册dll的方式或我从我的项目中引用它的方式的一般性问题。

ChilkatDotNet4.dll(以及我确定的其他版本)是用Visual C ++构建的。因此,它所部署的服务器必须为适当的处理器体系结构安装Visual C ++ Runtime。

2010年(.NET 4.0):

如果您在64位平台上运行x86应用程序。确保使用“启用32位应用程序”= true标记应用程序池。