我正在尝试将.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控制台应用程序时是否需要进行特殊的安装?