Tag: .net assembly

AssemblyBinding BindingRedirect不适用于带有T4MVCExtensions的MVC4应用程序

我们有一个使用T4MVC的大型.NET Web应用程序MVC3。 我们最近将它升级到了MVC4,除了T4MVCExtensions(来自NuGet的版本3.6.5)仍然依赖于System.Web.Mvc版本3之外一切都很好。你应该在web.config中设置的运行时依赖项应该是应该的重定向程序集绑定,但它们似乎不是。 发生以下exception: Index was out of range. Must be non-negative and less than the size of the collection. Parameter name: index Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code. Exception […]

如何在LoadFrom上下文中绑定到程序集时重现InvalidCastException

在Suzanne Cook的.NET CLR笔记中,她谈到了“LoadFrom”环境的危险性。 特别, 如果Load上下文程序集尝试按显示名称加载此程序集,则默认情况下将无法找到它(例如,当mscorlib.dll反序列化此程序集时) 更糟糕的是,可以在探测路径上找到具有相同标识但位于不同路径的程序集,从而导致InvalidCastException,MissingMethodException或稍后出现意外的方法行为。 如何使用反序列化重现此行为,但是没有显式加载两个不同版本的程序集?

无法加载文件或程序集,PublicKeyToken = null

无法加载文件或程序集“NCrawler.GeckoProcessor,Version = 3.0.0.0,Culture = neutral,PublicKeyToken = null”或其依赖项之一。 当我调用CrawlUsingGeckoProcessor.Run(); 这是什么意思? 我可以点击“转到定义”,我可以看到Run()方法。

microsoft.visualbasic.fileio不存在

我在.NET Framework 4.0上,在VisualStudio 2012中构建了一个C#Web应用程序。我添加了Microsoft.VisualBasic作为项目的参考。 我遇到以下代码行的问题: 使用Microsoft.VisualBasic.FileIO; 构建解决方案会返回错误:命名空间“Microsoft.VisualBasic”中不存在类型或命名空间名称“FileIO”(您是否缺少程序集引用?) 我已删除并重新添加对程序集Microsoft.VisualBasic的引用,但仍然得到错误。 Microsoft.VisualBasic位于GAC,以及Microsoft.VisualBasic.Compatibility,Microsoft.VisualBasic.Compatibility,Microsoft.VisualBasic.PowerPacks.Vs和Microsoft.VisualBasic.Vsa。 请告诉我如何让VS2012识别FileIO名称空间。

是否可以通过.NET安装x86汇编程序?

我可以通过C#调用x86汇编程序这样的东西吗? 我希望能够将x86指令作为字符串传递并获取字节数组。 如果一个不存在,我怎么能自己做? 要清楚 – 我不想从C# 调用汇编代码 – 我只是希望能够从指令汇编代码并以字节数组获取机器代码。 我将注入此代码(将动态生成)以完全注入另一个进程。

检查DLL文件是否是C#中的CLR程序集的最佳方法

检查DLL文件是Win32 DLL还是CLR程序集的最佳方法是什么? 目前我使用此代码 try { this.currentWorkingDirectory = Path.GetDirectoryName(assemblyPath); //Try to load the assembly. assembly = Assembly.LoadFile(assemblyPath); return assembly != null; } catch (FileLoadException ex) { exception = ex; } catch (BadImageFormatException ex) { exception = ex; } catch (ArgumentException ex) { exception = ex; } catch (Exception ex) { exception = ex; } if (exception […]

为什么我必须链接参考组件?

我的项目引用了一个引用另一个程序集的程序集(将其称为X)(将其称为Y)。 当我尝试编译我的项目时,它要求它应该引用程序集Y.为什么会这样? 我在引用程序集X的行上收到以下错误: “DevExpress.XtraEditors.XtraForm”类型在未引用的程序集中定义。 您必须添加对程序集’DevExpress.Utils.v9.1,Version = 9.1.2.0,Culture = neutral,PublicKeyToken = b88d1754d700e49a’的引用。 DevExpress.XtraEditors.XtraForm是程序集Y. 为什么是这样? 我以前没见过这种行为。

CLR在SQL Server内部组装C#

是否有可能在C#中创建一个大项目(很多函数),然后, 然后,为它创建CLR程序集 在SQL Server IN STORED PROC中,调用程序集中的函数, 该表(我将传递给ASSEMBLY)在其他存储过程中计算… 如果是这样,步骤是什么? 我在想这样的事情。 — I have a stored proc that gets a table, let it be myStoredProcTable –FIST ENABLE DATA ACCESS EXEC sp_serveroption ‘TheServerName’, ‘DATA ACCESS’, TRUE –main.sql calls yStoredProcTable.sql and the calls functionAssembly SELECT * INTO #tmpTable FROM OPENQUERY(SERVERNAME, ‘EXEC test.dbo.myStoredProcTable 1’) — pass the table to […]

调用Microsoft.Owin.Cors后无法加载System.Web.Cors程序集

当我在解决方案资源管理器中检查System.Web.Cors程序集引用时, Version是5.2.3.0 。 “ Specific Version属性设置为False 。 路径是本地项目bin文件夹。 从文件资源管理器检查.dll属性时,文件的产品版本和文件版本。 也是5.2.3 。 我的Web.config : 我的packages.config (我认为麻烦的程序集是Microsoft.AspNet.WebApi.Cors ,但我在这里包含了另一个类似名称的程序集): 在Startup.cs中抛出此行的错误 app.UseCors(Microsoft.Owin.Cors.CorsOptions.AllowAll); 这是完整的错误: System.IO.FileLoadException was unhandled by user code FileName=System.Web.Cors, Version=5.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35 FusionLog==== Pre-bind state information === LOG: DisplayName = System.Web.Cors, Version=5.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35 (Fully-specified) LOG: Appbase = file:///P:/project-z4a/project-z4a/ LOG: Initial PrivatePath = P:\project-z4a\project-z4a\bin Calling assembly : Microsoft.Owin.Cors, […]

如何确定调用方法和类名?

我目前正在使用内置的TraceListener开发应用程序日志库。 这个库将在许多项目中使用,并且应该提供一个简单的界面,我只需要关心将什么内容写入日志文件,而不是如何。 通过使用reflection命名空间,我可以找出当前称为日志函数的应用程序(检索执行程序集名称),但我还想要调用日志记录函数的函数和类的名称。 假设我有: public static void LogInfo(string vLogText) { Trace.WriteLine( MethodInfo.GetCurrentMethod().Name + this.GetType().ToString() + vLogText); } 当我从另一个项目调用时(类:TestClass,方法:TestMethod) Tracer.LogInfo(“log this!”) 我希望在日志中看到: TestClass, TestMethod, log this! 但相反,我得到了 TracerClass, LogInfo, log this! 如何获取父方法和类名?