问题标签 [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 回答
3768 浏览

.net - 如何使用配置在私有文件夹中操作多个程序集版本?

我有一个场景,我需要存储在应用程序私有文件夹中的同一程序集的多个版本,结构如下:

我的问题是 .Net 运行时,当被要求提供旧版本之一时,总是找到最新版本,然后由于内部版本号不匹配而失败,然后再尝试探测更好的匹配。

程序集是强命名的,我在 app.config 中使用此配置:

希望我在这里错过了一些东西。我知道这可以通过监听AppDomain.AssemblyResolve事件在代码中解决,但我希望看到一个纯粹的配置解决方案。

更新:所以我发现了这个错误,正如 Kent 假设的那样,是一个错字。culture="netural"应该是culture="neutral"。也就是说,如果没有错字,当使用codeBase指向每个版本的元素时,解析效果很好。在这种情况下,探测元素似乎不起作用。

0 投票
3 回答
4290 浏览

.net - BindingRedirect 到不同的程序集名称

您可以使用BindingRedirect将 YourAssembly.dll 1.1.0.0 重定向到 1.2.0.0。

如果程序集名称不同,有谁知道是否可以这样做。

例如

YourAssembly1.dll (v1.1) 重定向到 YourAssembly2.dll (v2.8)

0 投票
3 回答
2903 浏览

c# - WindowsImpersonationContext 下的程序集绑定。如何防止 FileLoadException?

由于跨受保护的网络共享移动和创建许多文件,我有一个需要进行大量模拟的应用程序。我创建了一个简单的静态类,该类具有一个方法,该方法采用用户、域、密码和一个委托,其中包含您需要在模拟上下文下运行的代码。

我遇到的问题是当 CLR 尝试在此上下文下绑定到引用的程序集时。引发 FileLoadException 并显示“访问被拒绝”消息。

我被引导相信这是由于模拟用户对文件系统下的 *.DLL 文件没有足够的权限。例如,我可以在模拟块之前编写良性代码,除了在上下文切换到模拟用户之前从问题程序集中加载类型外,什么都不做,这很好用!但是,我真的不认为这是一个优雅的解决方案——我是否需要开始担心我可以在模拟下使用哪些类型,并确保我typeof()事先放置了随机语句?

更令人沮丧的是,我没有在本地开发机器上遇到这个问题。当程序集被运送到 beta 环境时,才会出现这个问题。而且我无权从 beta 环境中读取文件权限,无法尝试在我的位置机器上模仿它们。

无论如何,我尝试了这个解决方案:

没有骰子。我仍然收到“访问被拒绝”异常,除了现在从Assembly.Load.

需要注意的一件有趣的事情是,我从构建服务器中得到了同样的异常。上述解决方案将其固定在构建服务器上。不在我们的测试环境中。

我在这里想念什么?谢谢。

0 投票
1 回答
310 浏览

.net - 如果新版本不可用,.NET 应用程序中的 assemblyBinding 是否适用于旧版本?

我已经为我的应用程序中使用的较新版本的程序集指定了程序集绑定,并且效果很好。

但是,在我的一台客户端计算机上,缺少该程序集的新版本,而是存在旧版本。当我尝试运行该应用程序时,它说它找不到新版本,我想这是正常的。问题是,如果新版本不可用,我如何告诉 .NET 框架使用旧版本?

目的是拥有一个独特的配置文件,该文件根据安装在任何客户端计算机上的程序集版本自动工作。我想要一个独特的配置文件,它的工作方式如下:

  • 如果引用的程序集具有版本 1,则使用该版本 1。
  • 如果引用的程序集具有版本 2,则使用该版本 2。
  • ... ETC

我试图避免在运行时修改 assemblyBinding 信息,具体取决于该引用程序集的已安装版本。

有任何想法吗?谢谢。

0 投票
3 回答
20847 浏览

.net - 具有不同公钥令牌的 .Net 程序集绑定重定向

如果旧版本上的公钥标记为空并在新版本上设置,是否可以在引用程序集的不同版本之间执行程序集绑定重定向?

例如,我有两个程序集...

如果以下程序集绑定重定向在 Asp.Net web.config 中工作...

0 投票
2 回答
3760 浏览

asp.net - 一段时间后的程序集 FileLoadException(访问被拒绝)

我有一个 Web 应用程序可以正常工作一段时间(几天),然后在实例化引用外部 dll 的类时开始抛出 FileLoadException。

  • 我没有使用任何 Assembly 静态方法显式加载程序集。我只是在实例化一个类,它本身从引用的库中实例化一个类。
  • 我运行了 Process Monitor 并只是监视了应用程序路径。我只得到发生错误的源代码文件的“PATH NOT FOUND”结果(在调试模式下编译,所以我假设这只是 .NET 的一部分,试图显示在转储堆栈跟踪时发生错误的行)
  • 这是在内部的专用服务器上运行的。该应用程序在 .NET 3.5 应用程序池以及使用相同引用的 dll 构建的另一个网站上运行。另一个网站有更多的流量,但从未收到此错误。
  • 该应用程序在 3 个 Web 服务器之间进行负载平衡,并且所有 3 个 Web 服务器都在某个时候遇到了这个问题。

我在其中一台 Web 服务器上打开了程序集绑定日志记录。这是堆栈跟踪的样子:

我对调试文件加载异常不是很熟悉,所以非常感谢任何帮助(我还能做些什么来调试,等等)。

谢谢。

0 投票
3 回答
2973 浏览

app-config - 在不同的计算机上运行应用程序时出现 MissingMethodException

我有一个问题,我在 Visual Studio 2010 上编译了我的应用程序,同时以 .NET Framework 3.5 为目标,将其部署到客户端服务器,却发现它给了我以下错误:

它说它正在寻找的方法是这样的:(XslTransform.Transform Method (IXPathNavigable, XsltArgumentList, XmlWriter, XmlResolver)支持:4、3.5、3.0、2.0、1.1

我尝试使用如下assemblyBinding元素设置重定向到相同 DLL 的 .NET Framework 4.0 版本:

但现在应用程序将无法运行,并将其放入事件日志中:

EventType clr20r3,P1 myapplication.exe,P2 3.85.12.27583,P3 4be9757f,P4 system.configuration,P5 2.0.0.0,P6 4889de74,P7 1a6,P8 136,P9 ioibmurhynrxkw0zxkyrvfn0boyyufow,P10 NIL。

所以,总而言之,(1) 有谁知道为什么应用程序找不到列出的方法,(2) 为什么它不让我重定向到 System.Xml 的 .NET 4.0 版本?

任何帮助表示赞赏,我完全被卡住了!

app.config 按要求:

0 投票
6 回答
19639 浏览

.net - 程序集绑定日志查看器 (fuslogvw) 未记录任何绑定

程序集绑定日志查看器 (fuslogvw) 不会记录我机器上安装的任何版本的框架的绑定。

我尝试使用自定义日志位置、默认日志位置、默认类别和本机图像类别。

程序集绑定日志查看器几个月前工作了。我在 64 位机器上运行: C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Bin\NETFX 4.0 Tools\x64\FUSLOGVW.exe

0 投票
1 回答
135 浏览

asp.net-mvc - ASP.NET MVC 2:为什么我的应用同时引用了两个版本(1 和 2)?

我在 Reflector 中打开了我的一个 ASP.NET MVC 2 项目的 DLL,并注意到有两个对 System.Web.Mvc 的引用——一个用于 1.0.0.0 版本,一个用于 2.0.0.0。我似乎在 csproj 文件和 web.config 文件中的任何地方都没有对 v1 的任何引用,但是当我尝试运行应用程序时出现错误Could not load file or assembly 'System.Web.Mvc, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' or one of its dependencies.

对 v1 的依赖从何而来?

0 投票
4 回答
9508 浏览

visual-studio-2010 - 程序集绑定重定向和代码分析

我在 Visual Studio 2010 的 Mvc 3.0.0.0 项目中使用 DotNetOpenAuth(它引用 System.Web.Mvc 版本 1.0.0.0)。

我正在使用程序集绑定重定向如下:-

一切正常,除了代码分析给我以下错误:-

CA0001:读取模块 X 时遇到以下错误:无法解析程序集引用:System.Web.Mvc,Version=1.0.0.0,Culture=neutral,PublicKeyToken=31bf3856ad364e35。

CA0058:找不到引用的程序集“System.Web.Mvc,Version=1.0.0.0,Culture=neutral,PublicKeyToken=31bf3856ad364e35”。此程序集是分析所必需的,并由以下人员引用:X.

有没有办法让代码分析工具尊重程序集绑定重定向?