2

当我从 Vista(32 位)转换到 Windows 7(32 位)时,我遇到了一个程序集加载问题。当我尝试加载一些非常旧的 Sybase ASE ADO.NET 数据提供程序 DLLS 时会发生这种情况。

融合日志查看器的日志显示:

    *** Assembly Binder Log Entry  (18/01/2010 @ 5:00:38 PM) ***

The operation failed.
Bind result: hr = 0x80131018. No description available.

Assembly manager loaded from:  C:\Windows\Microsoft.NET\Framework\v2.0.50727\mscorwks.dll
Running under executable  c:\windows\system32\inetsrv\w3wp.exe
--- A detailed error log follows. 

=== Pre-bind state information ===
LOG: User = NT AUTHORITY\NETWORK SERVICE
LOG: DisplayName = sybdrvado11
 (Partial)
LOG: Appbase = file:///C:/dev/AgentDesktop/ui/newweb/
LOG: Initial PrivatePath = C:\dev\AgentDesktop\ui\newweb\bin
LOG: Dynamic Base = C:\Windows\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files\newweb\f57489cf
LOG: Cache Base = C:\Windows\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files\newweb\f57489cf
LOG: AppName = d293c3e5
Calling assembly : (Unknown).
===
LOG: This bind starts in default load context.
LOG: Using application configuration file: C:\dev\AgentDesktop\ui\newweb\web.config
LOG: Using host configuration file: C:\Windows\Microsoft.NET\Framework\v2.0.50727\Aspnet.config
LOG: Using machine configuration file from C:\Windows\Microsoft.NET\Framework\v2.0.50727\config\machine.config.
LOG: Policy not being applied to reference at this time (private, custom, partial, or location-based assembly bind).
LOG: Attempting download of new URL file:///C:/Windows/Microsoft.NET/Framework/v2.0.50727/Temporary ASP.NET Files/newweb/f57489cf/d293c3e5/sybdrvado11.DLL.
LOG: Attempting download of new URL file:///C:/Windows/Microsoft.NET/Framework/v2.0.50727/Temporary ASP.NET Files/newweb/f57489cf/d293c3e5/sybdrvado11/sybdrvado11.DLL.
LOG: Attempting download of new URL file:///C:/dev/AgentDesktop/ui/newweb/bin/sybdrvado11.DLL.
LOG: Assembly download was successful. Attempting setup of file: C:\dev\AgentDesktop\ui\newweb\bin\sybdrvado11.dll
LOG: Entering download cache setup phase.
ERR: Error extracting manifest import from file (hr = 0x80131018).
ERR: Setup failed with hr = 0x80131018.
ERR: Failed to complete setup of assembly (hr = 0x80131018). Probing terminated.

我花了相当多的时间在谷歌上搜索这个和通过 ASP.NET 显示的错误消息,但似乎没有一个常见的解决方案是相关的。我确实注意到有一种方法可以使用病毒检查程序导致此错误。是否可以在原始 Windows 7 机器上执行此操作?即是否有任何类型的保护系统可以干扰组件加载?

这在 VS.NET 2008 和 VS.NET 2010 beta 2 上都失败了。

任何线索将不胜感激。

4

3 回答 3

2

要与 Sybase ASE ADO.NET 一起使用,sybdrvado11.dll您需要另一个文件:MSVCR71.dll 也许它在Windows\System32?

于 2010-12-09T14:20:18.133 回答
2

我用资源管理器在 GAC 文件夹中解决了我的问题。我可以看到 system.runtime.serializationdll,但是当我在此文件夹上使用 cmd 提示符时,dll 存在于 GAC_MSIL 而不是 GAC 上。所以我已经从 GAC 上的 GAV_MSIL 复制了 System.Runtime.Serialization 文件夹,并且在重新启动 VS 后我的项目编译完美。

为了轻松移动 dll,我使用了以下命令cmd.exe

cd\windows\assembly
attrib -r -h -s desktop.ini
ren desktop.ini desktop.bak

现在我可以在您的资源管理器中正常打开 GAC 文件夹,您可以看到实际的结构。

于 2012-02-23T10:31:15.883 回答
0

尝试加载时似乎会出现此问题C:\dev\AgentDesktop\ui\newweb\bin\sybdrvado11.dll

这是 Sybase ADO.NET 提供程序所需的非托管 DLL,通常应安装在 PATH 中的某个位置。

于 2010-01-18T08:18:51.323 回答