问题标签 [assembly-resolution]
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.
.net - 使用 REGASM 和 COM 时对不在 GAC 中的程序集的多个搜索路径
我正在创建一个将为 COM 注册的 .NET 程序集,以便 Microsoft Excel VBA 可以引用它。
该程序集引用了一个不在 GAC 中的第三方 .NET 程序集(包含一些有用的类),但是,我的程序集的部署存在问题,因为第三方程序集的路径并不总是在相同的位置(这取决于用户的语言环境以及最近安装第三方程序集的时间)。
这意味着在部署我的程序集(使用 REGASM)时,根据安装它的系统,REGASM 有时会失败,因为它找不到我的程序集对第三方程序集的依赖关系。
理想情况下,我想在我的程序集中使用早期绑定,但如果我这样做并且第三方程序集的路径与 Visual Studio 中的引用不同,那么 REGASM 将失败。
我意识到“复制本地”(在 VS 中)可以解决这个问题,但是由于有时会修补第三方程序集,所以我真的不希望将它的过时版本保留在与我的程序集相同的文件夹中。
有没有办法让我不必使用“复制本地”?我想我可以使用第三方程序集的某种动态加载,但仍然可以使用早期绑定?(并且 REGASM 会起作用吗?)
.net - .NET 中的完全限定类型解析
简单的问题(出现在SharePoint 2010中,但这并不真正相关)。
如何:
...当实际类型 ( LdapMembershipProvider ) 仅在Microsoft.Office.Server.UserProfiles程序集中而不在Microsoft.Office.Server程序集中找到时解决?
两者都是 GAC 注册的。
Fusion是否会探测其他程序集,即使指定了完全限定的类型?
nhibernate - 找不到程序集 Nhibernate
我正在使用 NHibernate 开发一个网络应用程序,并收到错误
奇怪的是它是间歇性的,当 ti 发生时,它会导致 VS 2010 嵌入式 Web 服务器崩溃。但它不会发生在每个请求或任何特定请求上。
我在网上找到了几篇文章,指出了一些不同的可能解决方案,并尝试了它们(包括确保我的 /bin 文件夹有副本,确保 dll 未被阻止,以及为 32 位编译应用程序)。这些解决方案似乎都没有影响它,无论如何,前一对似乎总是会成为问题的问题,而不是间歇性的。
unit-testing - 在构建单元测试项目时,VS 2010 找不到用于测试的引用程序集
我正在开发一个单元测试项目(比如说 XXX.UnitTest)来测试我的解决方案中另一个项目(XXX)中的 ViewModel。我可以添加引用,但是当我构建时,一个错误指出它找不到同一个项目 (XXX)
错误 42 无法加载文件或程序集“XXX,版本=1.0.2.66,文化=中性,PublicKeyToken=null”或其依赖项之一。该系统找不到指定的文件。XXX.UnitTest
- 我对解决方案中的所有项目进行了干净的重建。
- 我验证了具有该版本号 (1.0.2.66) 的程序集确实存在于我引用的路径中。
- 我删除并重新添加了引用作为项目和通过浏览选项卡。
- 我确保没有在 csproj 文件中指定版本号。
- 我使用 Dependency Walker 验证了引用的程序集。
- 我验证了这两个项目都针对 x86 平台。(如此处建议的提示以帮助调试“无法加载文件或程序集 X 或其依赖项之一”)
有谁知道还有什么可能导致这个问题?
c# - Windows 服务锁定程序集负载
我有一个用 C# 编写的 Windows 服务。它还包括一个独立的控制台模式,用于调试目的。它在几乎每台运行它的计算机上都可以正常工作,但是我们遇到了这样一种情况:当您尝试启动它时,该服务会锁定,然后由于超时而被终止。但是在同一台机器上以控制台模式运行它时,它可以正常启动。
调试很痛苦,因为我实际上无法访问正在发生这种情况的机器,我必须通过人工代理。但经过大量试错调试后,我终于将原因缩小到程序集负载。根据日志文件,当它第一次引用特定 dll 中的任何数据类型时,它就会停在那里。它甚至没有给出异常,它只是锁定了。
[编辑] 经过进一步检查,它似乎没有永久锁定,实际完成加载库只需要大约 40 秒,这足以让 Windows 服务决定终止该进程。
任何线索如何调试这种情况?
这是关于我可以重现它的最简单的解决方案。“之前”出现,但“期间”和“之后”不出现。
.net - .NET Fusion 记录器:默认图像和本机图像有什么区别?
在 .NET 融合记录器 (FUSLOGVW.exe)中,屏幕右下方的两个选项有什么作用?
以及如何使用其中任何一个来诊断混合模式装配问题?
.net - 在 .Net 应用程序中引用程序集
在我的应用程序中,我想加载驻留在网络共享上的程序集(应用程序本身也在该共享上),而不必将它们添加到项目的输出路径中。我想要的是一个输出目录,其中几乎只包含应用程序。
仅仅将目标目录添加到我的项目的引用路径是行不通的。
我尝试在 App.Config 中设置探测目录,但这不起作用(甚至在我的本地磁盘而不是网络共享上对其进行了测试)
提前感谢您的任何提示!
编辑:似乎这是通过反射导致的。难道没有更优雅的方式使用像 NInject 这样的依赖注入容器吗?
wcf - WCF 服务中莫名其妙的程序集负载 (IIS 7)
我正在开发一个新的 WCF Web 服务,该服务将托管在现有的 ASP.NET Web 应用程序中。当我尝试为该服务运行 .svc 文件时,我收到一个异常,它找不到程序集的文件。
无法加载文件或程序集“System.IdentityModel,Version=4.0.0.0,Culture=neutral,PublicKeyToken=b77a5c561934e089”或其依赖项之一。该系统找不到指定的文件。
问题是,这个服务似乎没有在任何地方引用这个(特定的)程序集。有一个加载 System.IdentityModel 的引用项目,但它引用版本 3.0.0.0。事实上,所有这些项目都针对 3.5 运行时,并且在任何地方都没有对任何 4.0 程序集的引用。
这是<compilation>
Web 应用程序的 Web.config 中的标记:
注意:该<clear />
标签是后来作为故障排除尝试添加的。它似乎对行为没有任何影响。我添加它是因为 IIS 配置管理器的“.NET 编译”选项卡给了我一个错误,即 System.Data 被添加了两次,但显然不在此文件中。添加<clear />
为我处理了它,但我在 Machine.config 中找不到有问题的重复项,并且没有基础网站 Web.config,所以我想知道是否可能有某个地方我没有找到可以成为问题的原因。
服务器正在运行带有 .NET 3.5 SP1 的 Server 2008。我在本地 IIS 安装上遇到了同样的问题(虽然System.Configuration
不是 IdentityModel,但仍然......),它是在带有 .NET 4.0 的 Windows 7 x64 上。
有谁知道它为什么试图加载这个程序集(当只引用版本 3.0.0.0 时)以及我能做些什么来纠正它?
.net - .NET 程序集引用如何“转换”为文件路径?
我正在尝试对 SBS 2008 服务器上的 Outlook Web Access 的 .NET 2.0 错误进行故障排除。
我得到的错误是:
在 web.config 的第 51 行,我有:
那么在“web.config-ese”中,它如何“知道”该Microsoft.Exchange.Data
程序集 .DLL 在哪里,我如何确定这一点以验证该文件是否存在?
c# - 尝试运行 Fluent NHibernate 教程示例时出现运行时错误
我在http://wiki.fluentnhibernate.org/Getting_started上完成了 Fluent NHibernate 教程,项目编译良好。
但是,我遇到了运行时错误,我似乎无法解决它。您可以在教程中看到的 CreateSessionFactory 方法中发生错误。这里是:
我认为最有帮助的事情是为您提供从最外层异常到最内层异常的异常链(这是一个真实的词):
本教程不清楚如何设置参考(或者至少基于最内部的异常似乎不完整)所以我从http://fluentnhibernate.org/downloads/releases/fluentnhibernate-1.1.zip获得了编译的程序集并复制了将它们放入 libs 文件夹中。基于谷歌搜索错误,我设置了对 FluentNHibernate、NHibernate 和 NHibernate.ByteCode.Castle 程序集的引用。我将下载页面中的所有 dll 复制到 bin 目录中,我认为所有引用都会解决。(这是我对其工作原理的理解)。无论如何,这里是我复制到 bin 中的文件列表。
我还将 System.Data.Sqlite 程序集复制到了 bin。
对于我的生活,我无法弄清楚问题是什么。我已经尝试了所有我能想到的方法,并在 Google 上搜索了多条错误消息,但对我没有任何帮助。
帮助!我在这上面浪费了几个小时。
编辑
我已将项目的源文件放在http://dl.dropbox.com/u/8824836/FluentNHibernateExample.zip。请记住,要完全复制我的环境,您需要将此处的所有文件放入您的 output/bin 目录。
赛斯