问题标签 [assembly-loading]

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 投票
3 回答
1002 浏览

.net - Tridion:发布时无法加载 .Net dll

我正在使用 .Net dllNewtonsoft.Json in my C# TBB来处理组件并生成 Json 数据。我已经在 中添加了这个 dll GAC[Global Assembly Cache],它也可以正常工作。但有时它不起作用,我在发布时收到以下错误:

JScriptException: Expression 'RenderComponentPresentation()' had error 'Could not load file or assembly 'Newtonsoft.Json, Version=4.0.5.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed' or one of its dependencies. The system cannot find the file specified.'

但是当我在 Tridion 中预览页面时,它工作正常。为了解决这个问题,我们重新启动了Tridion Services,重新启动后我们发布了它可以正常工作的页面。但是这个问题不断地一次又一次地出现。有没有办法永久解决这个问题?

最近,当我再次发布同一页面时,当它已经在发布过程中时,我可以重现问题。第二次发布尝试返回上述错误,但第一次发布尝试在第二次发布尝试失败后完成并返回Success。知道为什么会出现这种奇怪的行为。

0 投票
2 回答
303 浏览

.net - 托管在共享主机上的 WCF 服务

我使用 .NET 3.5 服务开发了一个 WCF 来将一些数据导入到 Internet。

在本地,使用 IIS Express 一切正常。当我将服务部署到共享主机并将浏览器指向服务地址时,出现以下异常:

无法加载文件或程序集“系统,版本=4.0.0.0,文化=中性,PublicKeyToken=b77a5c561934e089”或其依赖项之一。该系统找不到指定的文件。

我的环境配置为使用具有 32 位兼容性的 .NET 3.5。

堆栈跟踪显示:

[FileNotFoundException: Could not load file or assembly 'System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089' or one of its dependencies. The system cannot find the file specified.] System.ServiceModel.AsyncResult.End(IAsyncResult result) +11655726 System.ServiceModel.Activation.HostedHttpRequestAsyncResult.End(IAsyncResult result) +194 System.ServiceModel.Activation.HostedHttpRequestAsyncResult.ExecuteSynchronous(HttpApplication context, Boolean flowContext) +176 System.ServiceModel.Activation.HttpModule.ProcessRequest(Object sender, EventArgs e) +275 System.Web.SyncEventExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() +68 System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) +75

有关如何解决该问题的任何线索?

0 投票
2 回答
1135 浏览

asp.net-mvc - Razor MVC 应用程序无法加载 FreeTextBox,但它没有 FreeTextBox

我将 MVC3 Razor 应用程序上传到了 webhost 提供程序(在 Visual Studio 2010 下的开发服务器上运行良好)。

在部署的站点上,我得到一个

但我完全感到困惑,我的应用程序中没有任何 FreeTextBox!我什至没有引用那个 DLL。不幸的是,“Detaile”IIS 错误甚至没有提到谁或什么试图加载该 DLL,所以我不知道它来自哪里。

为了三重检查,我在我的自建应用程序上使用搜索掩码对 FreeTextBox 进行了搜索在整个解决方案上,Visual Studio 找不到任何东西。

这里的实际解决方案 确实是继承了父应用程序的程序集。Ketan 根据您的建议,我通过这样做解决了它:

0 投票
1 回答
5403 浏览

unity-container - Unity 的程序集绑定重定向不起作用

我正在创建一个新的 MVC 4 网站,我想使用 Unity.MVC3 库与 MVC 中内置的 DependencyResolver 内容集成。

我还想从一个旧的、更大的项目中引用一些数据访问 DLL。

我的问题是 Unity.MVC3 和较旧的 DLL 分别针对不同版本的 Unity 1.2.0.0 和 2.1.505.0 进行编译。我尝试在我的 web.config 文件中创建绑定重定向,如下所示:

但是,我仍然收到以下错误:

我打开了程序集绑定日志记录,最后两行说明:

为什么我的绑定重定向不被尊重?有没有办法覆盖它对主要版本冲突的检查?

0 投票
1 回答
8938 浏览

c# - 在 .NET 4.0 应用程序域上加载面向 .NET 4.5 的程序集

假设系统安装了 .NET 4.0 和 .NET 4.5。

是否可以从针对 .NET 4.0 编写的程序集加载和使用 .NET 4.5 程序集?

简而言之,我可以Assembly.Load从 .NET 4.0 代码调用以加载 .NET 4.5 目标程序集吗?

0 投票
2 回答
489 浏览

c# - WPF 资源加载在 LoadFrom 加载上下文中失败

我有一个 WPF 程序集,我在本机代码的互操作场景中使用 LoadFrom 加载上下文,如下所示:

请注意,mydlls 与可执行文件所在的文件夹不同。这适用于我也加载的常规非 ui .NET dll,但是当我尝试执行此操作时出现错误。我附加了 AppDomain.CurrentDomain.AssemblyResolve 事件处理程序并获取了一个无法加载的事件。ResolveEventArgs 中的名称为“mywpfstuff.resources”,RequestingAssembly 为空。我没有名为“mywpfstuff.resources”的文件,并且无法弄清楚如何自己解决这个程序集。

触发错误的代码行是 InitializeComponent(); 调用我的主要用户控件构造函数。

在我看来,内部 XAML(BAML?)机制试图加载一些资源,但使用标准的 Load 上下文而不是 LoadFrom 上下文。

有没有办法解决这个问题,最好是让 WPF 使用 LoadFrom 上下文,或者如果这不可能,如何手动解决程序集?

0 投票
0 回答
144 浏览

c#-4.0 - 从 AppBase 加载弱名称程序集

我想在运行时加载程序集。我知道的关于程序集的唯一信息是它的名称(弱名称)。我在其中一本书中读过,AppBase 中存在所有名称较弱的程序集。有谁知道我如何在运行时加载这个程序集?

如果您知道程序集路径,我在网上找到的代码正在加载程序集。但我不想硬编码路径。

我正在使用下面的代码来加载程序集。程序集程序集 = Assembly.Load("RomanConverter"); 现在,当 CLR 尝试加载程序集时,它找不到程序集。原因是上面的代码行是由一个控制台应用程序调用的,它没有任何对 Roman Converter 的引用。它试图在以下位置找到程序集:(Fusion Log)

日志:正在尝试下载新的 URL 文件:///C:/Users/XYZ/documents/visual studio 2010/Projects/Algo/Algo/bin/Debug/RomanConerter.DLL。日志:正在尝试下载新的 URL 文件:///C:/Users/XYZ/documents/visual studio 2010/Projects/Algo/Algo/bin/Debug/RomanConerter/RomanConerter.DLL。日志:正在尝试下载新的 URL 文件:///C:/Users/XYZ/documents/visual studio 2010/Projects/Algo/Algo/bin/Debug/RomanConerter.EXE。日志:正在尝试下载新的 URL 文件:///C:/Users/XYZ/documents/visual studio 2010/Projects/Algo/Algo/bin/Debug/RomanConerter/RomanConerter.EXE。

但是我的程序集出现在其他位置。(小鬼:我不能在这里硬编码路径,或者我不想给出任何相对路径)

0 投票
1 回答
43 浏览

reflection - 获取有关解决方案中存在的程序集的信息

场景:我想在运行时加载解决方案中存在的程序集。

belo 代码将不起作用,因为它不存在于当前应用程序域中。

此外,如果我将在引用的程序集中搜索,那么也找不到它,因为它没有被引用。所以下面的代码也不起作用:

你有什么建议吗?

0 投票
1 回答
541 浏览

windows-runtime - IKVM.Reflection 用于在 Windows 应用商店应用程序运行时发出 IL?

我看到了 Marc Gravell 在IKVM.Reflection上的帖子,这是我在 IKVM用户指南中找到的内容:

使用 IKVM.NET 有两种主要方式:

  • 动态:在这种模式下,Java 类和 jar 直接用于在 .NET 运行时执行 Java 应用程序。Java 字节码被即时翻译成 CIL,不需要进一步的步骤。此模式支持完整的 Java 类加载器模型。
  • 静态:...

我想用它在 WinRT 应用程序中发出和执行 IL。是否存在任何根本问题,为什么这是不可能的?像 Microsoft 的政策,或阻止从 IKVM 执行(可能已修补)反射和 IL 发射代码的技术限制?

如果这不可能,是否有任何选项可以在运行时加载程序集(假设我在外部服务器上发出它们并从那里下载到本地应用程序文件夹)?

0 投票
1 回答
1731 浏览

c# - Asp.net 不应用dependentAssembly/codeBase 提示

我正在尝试针对 RazorEngine 无法在 Razor 2.0 应用程序中部署的问题实施此解决方法,因为它依赖于不兼容的 Razor 1.0。

我所做的是在 bin 文件夹中创建了两个目录:1.0 和 2.0,并将各自的 System.Web.Razor.dll 文件放入每个目录中。然后,我向 web.config 添加了dependentAssembly/codeBase 提示,以将程序集加载器指向正确的方向。

但是,我似乎无法让 Asp.net 尊重我为 System.Web.Razor 程序集申请的 codeBase 覆盖。结果是无法加载 System.Web.Razor 1.0.0.0 以供 RazorEngine 使用。

网页配置

System.Web.Razor 1.0.0.0 的 Fusion 程序集加载日志的输出:

日志:用户 = NT AUTHORITY\SYSTEM 日志:DisplayName = System.Web.Razor,版本 = 1.0.0.0,文化 = 中性,PublicKeyToken = 31bf3856ad364e35(完全指定)

日志:Appbase = file:///C:/apps/lr2/web/arcs/

日志:初始 PrivatePath = C:\apps\lr2\web\arcs\bin

日志:动态基础 = C:\Windows\Microsoft.NET\Framework\v4.0.30319\Temporary ASP.NET Files\root\a63cc915

日志:缓存基础 = C:\Windows\Microsoft.NET\Framework\v4.0.30319\Temporary ASP.NET Files\root\a63cc915

日志:AppName = 98966cc9

调用程序集:RazorEngine,版本=3.0.8.0,文化=中性,PublicKeyToken=9ee697374c7e744a。

LOG:此绑定在默认加载上下文中开始。

LOG:使用应用程序配置文件:C:\apps\lr2\web\arcs\web.config

LOG:使用主机配置文件:C:\Windows\Microsoft.NET\Framework\v4.0.30319\aspnet.config

LOG:使用 C:\Windows\Microsoft.NET\Framework\v4.0.30319\config\machine.config 中的机器配置文件。

日志:政策后参考:System.Web.Razor,版本=1.0.0.0,文化=中性,PublicKeyToken=31bf3856ad364e35

日志:GAC 查找不成功。

日志:正在尝试下载新的 URL 文件:///C:/Windows/Microsoft.NET/Framework/v4.0.30319/Temporary ASP.NET Files/root/a63cc915/98966cc9/System.Web.Razor.DLL。

日志:尝试下载新 URL 文件:///C:/Windows/Microsoft.NET/Framework/v4.0.30319/Temporary ASP.NET Files/root/a63cc915/98966cc9/System.Web.Razor/System.Web.Razor .DLL。
日志:正在尝试下载新的 URL 文件:///C:/apps/lr2/web/arcs/bin/System.Web.Razor.DLL。

日志:正在尝试下载新的 URL 文件:///C:/apps/lr2/web/arcs/bin/System.Web.Razor/System.Web.Razor.DLL。

日志:正在尝试下载新的 URL 文件:///C:/Windows/Microsoft.NET/Framework/v4.0.30319/Temporary ASP.NET Files/root/a63cc915/98966cc9/System.Web.Razor.EXE。

日志:尝试下载新 URL 文件:///C:/Windows/Microsoft.NET/Framework/v4.0.30319/Temporary ASP.NET Files/root/a63cc915/98966cc9/System.Web.Razor/System.Web.Razor 。EXE文件。

日志:正在尝试下载新的 URL 文件:///C:/apps/lr2/web/arcs/bin/System.Web.Razor.EXE。

日志:正在尝试下载新的 URL 文件:///C:/apps/lr2/web/arcs/bin/System.Web.Razor/System.Web.Razor.EXE。

LOG:所有探测 URL 都已尝试并失败。

知道为什么 Asp.net 从不尝试深入 bin\1.0 吗?

我确实检查了 machine.config 并且没有任何冲突的 assemblyBinding 的迹象。

感谢帮助!