我正在尝试向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”。
从两个位置运行表明安装成功。事实上,注册似乎是成功的:
但是,使用以下消息运行引用dll错误的(64位)版本的控制台应用程序:
System.IO.FileNotFoundException:可以 不加载文件或程序集 'ChilkatDotNet4.dll'或其中一个 依赖。指定的模块 无法找到。文件名: 'ChilkatDotNet4.dll'
所以,我现在已经使用mkdir手动创建了以下GAC条目并从命令提示符复制(实际上可能有也可能没有。我不知道gacutil.exe有什么特别之处):
在每次“安装”dll之后,我测试并收到了同样的错误。欢迎任何想法!
编辑:上述GAC问题实际上可能不是罪魁祸首。事实证明,即使我创建一个全新的Console App项目并直接添加.dll(以便它存在于bin中),我仍然无法在服务器上运行它。此外,我注意到Console应用程序是针对.NET 4.0 Client Profile而不是.NET Framework 4创建的。当我尝试针对客户端配置文件运行它时,似乎没有System.Web *库可用。但是,我尝试运行一个非常简单的测试应用程序,同时针对两者,并且在引用坏.dll时都不会在服务器上运行。
运行.NET 4.0控制台应用程序是否会出现一种特殊的安装方式?