向GAC注册ChilkatDotNet4.dll时出现问题

向GAC注册ChilkatDotNet4.dll时出现问题,dll,.net-4.0,gac,gacutil,Dll,.net 4.0,Gac,Gacutil,我正在尝试将.NET4.0.dll添加到GAC。我之所以尝试这样做,是因为它是由第三方公司以32位和64位.dll的形式发布的,我必须从不同平台上的不同应用程序使用这两种格式 无论如何,我在Windows Server 2008环境中将此dll注册到GAC时遇到问题 根据找到的建议,我已尝试将本地计算机上的“C:\Program Files(x86)\Microsoft SDK\Windows\v7.0A\bin\NETFX 4.0 Tools”中的gacutil.exe(及支持文件)复制到目标

我正在尝试将.NET4.0.dll添加到GAC。我之所以尝试这样做,是因为它是由第三方公司以32位和64位.dll的形式发布的,我必须从不同平台上的不同应用程序使用这两种格式

无论如何,我在Windows Server 2008环境中将此dll注册到GAC时遇到问题

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

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

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

  • C:\Windows\Microsoft.NET\assembly\GAC_64\ChilkatDotNet4\v4.0_9.0.8.0_uuuEB5FC1FC52EF09BD\ChilkatDotNet4.dll
  • C:\Windows\Microsoft.NET\assembly\GAC_32\ChilkatDotNet4\v4.0_9.0.8.0_uuuEB5FC1FC52EF09BD\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_UuEB5FC1FC52EF09BD\ChilkatDotNet4.dll(使用64位版本的dll)
  • C:\Windows\assembly\GAC_64\ChilkatDotNet4\v4.0_9.0.8.0__EB5FC1FC52EC52EF09BD\ChilkatDotNet4.dll
  • C:\Windows\assembly\GAC_32\ChilkatDotNet4\v4.0_9.0.8.0__eb5fc1fc52ef09bd\ChilkatDotNet4.dll
每次“安装”dll后,我都会测试并收到相同的错误。欢迎有任何想法


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


运行.NET 4.0控制台应用程序时是否会进行特殊类型的安装?

适用于将来可能遇到此问题的任何其他人。这不是我向GAC注册dll的方式的一般问题,也不是我如何从项目中引用dll的问题

CykAtdotNET4.DLL(以及我确信的其他版本)是用VisualC++生成的。因此,部署的服务器必须安装用于适当处理器体系结构的VisualC++运行时。 2010年(.NET 4.0):


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

谢谢您的回答。我像Frangiskos一样在Windows 2008 R2 x64上使用chillkatDotNet4.dll 64位。我先安装VisualC++运行时X64。我查看了网站,但再次看到相同的错误。我用X86改变了Chilkat的X64 DLL,还安装了X86版本的VisualC++运行库。并将应用程序池“启用32位应用程序”属性设置为True。我的情况和你们非常相似:我使用x86 Chilkat库,发布到任何CPU。我的服务器是X64,但安装C++ x86,启用“启用32位应用程序”就行了!