问题标签 [assemblybinding]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
1092 浏览

.net - 为多个可执行文件配置一次 assemblyBinding

我有一个包含多个可执行文件的文件夹。目前在每个executable.exe.config文件中都配置了程序集绑定重定向。有没有办法只配置一次,该文件夹中的所有可执行文件都会自动选择它?我想避免 machine.config 因为这会将它应用于整个计算机。

0 投票
2 回答
2927 浏览

.net - 调试 .NET 程序集绑定,也就是查找使用了什么 dll 以及为什么

我们在运行时加载的引用 dll 上有一些神秘的版本不匹配。

像这样的错误:

无法加载文件或程序集 X 或其依赖项之一。找到的程序集的清单定义与程序集引用不匹配。(来自 HRESULT 的异常:0x80131040)

有没有办法调试程序集绑定。

换句话说,我如何知道有关已加载程序集的以下详细信息:

  • 版本
  • 地点
  • 谁/什么导致了加载(我的代码,另一个 .dll,...)
  • 好吧,几乎所有其他事情都需要知道......
0 投票
1 回答
3838 浏览

asp.net - 在托管网站的虚拟机上找不到指定的模块错误

我一直在远程处理运行 ASP.NET 3.5 网站的 Windows Server 2003 虚拟机的奇怪情况......或者,至少正在尝试运行它。

该网站是使用该项目的标准安装程序安装的,该安装程序已用于在多个不同位置进行安装。但是,这个人的行为有所不同。

该网站在运行时失败。在事件查看器中,报告以下错误:

异常信息:异常类型:HttpException 异常消息:找不到指定的模块。(来自 HRESULT 的异常:0x8007007E)

该错误在网站上报告为:

异常详细信息:System.IO.FileNotFoundException:找不到指定的模块。(来自 HRESULT 的异常:0x8007007E)

运行融合日志查看器,我可以看到 ASP.NET 正在尝试加载以下程序集:

CppCodeProvider,版本=8.0.0.0,文化=中性,PublicKeyToken=b03f5f7f11d50a3a VJSharpCodeProvider,版本=2.0.0.0,文化=中性,PublicKeyToken=b03f5f7f11d50a3a

首先,ASP.NET 没有理由加载这些程序集。我在 machine.config 或根据需要列出这些程序集的任何其他配置中找不到任何位置。我们尝试安装 3.5 SDK,但都没有安装。我的开发机器上只有第 10 版的 CPPCodeProvider。

这到底是怎么回事??

注意: 请不要粗略的谷歌搜索和回答。我发现什么都不适用。如果有人回答

“定义 DEBUG 常量”和“定义 TRACE 常量”

我要打穿你的内胎。

0 投票
1 回答
2534 浏览

webforms - PortableLibrary 无法加载文件或程序集

我有引用 PortableLibrary 项目的 asp.net 4 webforms 网站。在网站中,我对 PortableLibrary 中的类进行了序列化。当我使用 IIS6 将项目部署到网络服务器机器时,出现以下错误:

可移植库项目引用 System.Xml (v4.0.31029)。

当我尝试部署没有引用的干净项目时,只需对字符串对象进行简单的序列化,它就可以正常工作。

在 Web 配置中尝试了组装绑定,但没有成功。

为什么我会收到此错误?我不知道 system.xml 的“2.0.5.0”版本从何而来。

0 投票
2 回答
4133 浏览

c# - Is it possible to swap System.Data.SqlServerCe 4.0.0.0 with version 4.0.0.1 at runtime?

My application references a library project that has System.Data.SqlServerCe 4.0.0.0 as a dependency.

I'm trying to private deploy my app, however, which requires System.Data.SqlServerCe 4.0.0.1.

So, I set up my app so that System.Data.SqlServerCe 4.0.0.1 gets copied into the output directory (into the same folder as the executable), and I added an assemblyBinding to my App.config file:

Unfortunately, I'm getting this error:

Could not load file or assembly 'System.Data.SqlServerCe, Version=4.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91' or one of its dependencies. The located assembly's manifest definition does not match the assembly reference. (Exception from HRESULT: 0X80131040)

Question

Is it possible to swap System.Data.SqlServerCe 4.0.0.0 with version 4.0.0.1 at runtime to allow for private deployment?

0 投票
1 回答
415 浏览

c# - 默认程序集绑定行为

我们正在构建一个存储在程序集中的 API,我们称之为 MyAssembly.dll

此程序集的 AssemblyVersion 为 1.0.0.0

我希望,在发布新版本的程序集时,以前编译引用 1.0.0.0 版本的代码会中断,因为程序集绑定会失败(没有一些额外的帮助,如 bindRedirect)。

在实践中,我看到的是绑定实际上成功了。

我通过构建具有各种不同版本的 MyAssembly.dll 并尝试运行引用 1.0.0.0 的各种代码来测试它

这是默认行为吗?绑定到EXACT版本是否仅来自强名称(签名)程序集?

谢谢。

0 投票
2 回答
2559 浏览

visual-studio-2010 - 未加载 NGEN 的程序集

我正在尝试衡量 NGEN 对我的程序集的性能影响,但我无法让我的可执行文件加载 NGEN 程序集。我从 VS2010 命令提示符运行以下命令:

这完成没有任何问题,并且我验证了我的所有依赖程序集都已在 C:\Windows\assembly\NativeImages_v4.0.30319_32\MyCompanyName# 目录中创建。

然后我启动我的应用程序并查看 Process Explorer,它正在从本地二进制目录加载我的所有程序集,而不是从 NativeImages_x 文件夹加载 *.ni.dll 文件。我使用 fuslogvw 记录了绑定。这是一个示例日志条目:

有人对这里发生的事情有任何想法吗?我验证了有问题的本机程序集存在于:

为什么它没有正确绑定它?FWIW,该应用程序使用了相当多的 MEF;我不知道这是否会影响程序集的加载。

0 投票
1 回答
8123 浏览

c# - ConfigurationManager.OpenMappedExeConfiguration.GetSection() 失败(最近才开始发生)

首先,让我为这个极其冗长的问题提前道歉——感谢任何坚持到最后的人!


我有一个 C#/.NET 3.5 类库,它没有安装在 GAC 中,因为该类库是另一个程序 (ArcMap.exe) 的插件。该程序实际上在启动时将 .dll 从存档中提取到用户的 Local Settings\Application Data 文件夹下的文件夹中,但我可以在运行时使用this.GetType().Assembly.Location.

在库中,我有一个CustomConfigSection在 .config 文件中引用的类。

该库有一个类,该类的方法LoadConfigSection()使用从 .config 文件(存储在用户的 Application Data 文件夹中)读取ConfigurationManager.OpenMappedExeConfiguration()并返回一个CustomConfigSection-- 或者它应该返回。会发生什么GetSection()令人讨厌的ConfigurationErrorsException说它找不到包含我的CustomConfigSection.

令人讨厌的是,这是两天前的工作。我认为 Windows 更新打破了这一点。我已经回去尝试了我知道工作正常的以前版本的代码,但无济于事。环境发生了一些变化,而不是我的代码,但现在其他机器上也发生了变化,所以不仅仅是我!

这是一个示例 .config 文件:

我用来阅读它的代码(正如我在两天前提到的那样完美运行):

m_userConfigFilePath是 .config 文件的有效路径,并且Configuration对象的HasFile属性为 true。

这是我在启用Fusion程序集绑定日志记录后得到的错误:

并且融合失败的绑定日志本身:

显然,正在从错误的位置ConfigurationManager寻找包含我的程序集CustomConfigSection——至于为什么最近才开始发生这种情况,我不知道,但我确实在 2-3 天前安装了一堆 Windows 更新。我正在运行 32 位的 Windows XP Pro SP3。

在不完全理解所有这些术语的含义的情况下,Fusion 日志让我希望我能够更改加载上下文或策略以强制它从正确的位置加载程序集。这是真的吗,如果是这样,怎么办?

0 投票
1 回答
240 浏览

asp.net - asp.net 的 dll 绑定(dll 版本控制)

我知道这是一个非常基本的问题 - 但我直到现在才遇到这个问题 - 所以我寻求帮助。

我有两个同名的 dll 文件(example.dll),但幸运的是差异版本号为 1.0.3180.20767 和 1.0.2490.20011。我想在同一个项目中使用这两个 dll。

我该如何使用它们?- 只需单击“添加参考”失败并显示以下消息在此处输入图像描述

我可以重命名这些文件,以便它们现在被称为“example1.dll”和“example2.dll”——但这可以吗?有一个更好的方法吗。

感谢你的帮助!

0 投票
1 回答
427 浏览

clr - 您可以使用环境变量替换代码库元素中 href 属性的硬编码路径吗

我很好奇 CLR 是否可以从特定位置加载程序集,这就是我发现的基本上从 C:\MyAssemblies 文件夹加载程序集的内容。

现在,我的问题是 - 是否可以在以下 href 属性中使用环境变量?换句话说,可以用 %windir% 代替 c:\ 吗?

我可能会使用 GAC 来完成我需要完成的工作,但我想知道在这种情况下是否可以使用环境变量。谢谢。