代码之家  ›  专栏  ›  技术社区  ›  fordareh

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

  •  13
  • fordareh  · 技术社区  · 15 年前

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

    无论如何,我在WindowsServer2008环境中向GAC注册此DLL时遇到了问题。

    根据在目标生产服务器上找到的建议,我已尝试将“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\assembly\gac_64\chilkattotnet4\v4.0_9.0.8.0_uuu eb5fc1fc52ef09bd\chilkattotnet4.dll
    • C:\windows\microsoft.net\assembly\gac_32\chilkattotnet4\v4.0_9.0.8.0_uuu eb5fc1fc52ef09bd\chilkattotnet4.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_uuu eb5fc1fc1fc52ef09bd\chilkatdotnet4.dll(使用64位版本的dll)
    • C:\windows\assembly\gac_64\chilkattotnet4\v4.0_9.0.8.0_uuu eb5fc1fc52ef09bd\chilkattotnet4.dll
    • C:\windows\assembly\gac_32\chilkattotnet4\v4.0_9.0.8.0_uuu eb5fc1fc52ef09bd\chilkattotnet4.dll

    每次“安装”DLL后,我都会测试并收到相同的错误。欢迎有任何想法!


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

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

    1 回复  |  直到 14 年前
        1
  •  35
  •   Baris Seker    14 年前

    对于将来可能会遇到麻烦的任何人。我向GAC注册DLL的方式或者从我的项目中引用它的方式并不是一个普遍的问题。

    CykAtdotNET4.DLL(以及其他版本,我敢肯定)是用VisualC++构建的。因此,部署的服务器必须为适当的处理器体系结构安装VisualC++运行时。

    对于2010年(.net 4.0):

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

    推荐文章