Tag: .net assembly

使用AssemblyBuilder构建资源程序集

场景:我想创建作为资源程序集的附属程序集。 该程序集仅在其中编译资源(ResourceWriter)。 目标是在VS之外创建资源程序集,并将它们添加到应用程序中,并将其添加到我的C#应用​​程序中 Atm我使用AssemblyBuilder来创建程序集。 它有效,但没有关于存储的程序集的信息。 没有cultureinfo,密钥或其他任何东西。 该应用程序没有使用Missing Manfifest Resource Exception。 🙁 如果可能的话,我想继续使用AssemblyBuilder或使用CodeDomProvider。 问题 :为我的应用添加新的卫星组件有什么必要? 是否有足够的文件夹(en-US)和一个包含en-US资源的程序集? 问题2 :是否可以向程序集提供一些元信息,如版本,文化? 问题3 :是否足以将资源添加到程序集中? 码: AssemblyBuilder builder = AppDomain.CurrentDomain.DefineDynamicAssembly( assemblyName, AssemblyBuilderAccess.RunAndSave, resourceFolder); builder.AddResourceFile(name, assemblyFileName); builder.Save(assemblyName.Name); 对于任何forms的帮助,我将不胜感激。 提前致谢

如何将.exe加载为.NET程序集?

我可以使用吗?: Assembly.LoadFile 不确定这是否是这样做的? 但是当我尝试这种方法时,它会抛出一个Could not load file or assembly “CustomControlLib”或其依赖项之一。 该系统找不到指定的文件。 有任何想法吗?

获得依赖程序集?

有没有办法让所有程序集依赖于给定的程序集? 伪: Assembly a = GetAssembly(); var dependants = a.GetDependants();

.net程序集和个人配置

我的主要程序集是一个Web应用程序。 它使用spring.net框架将其他程序集加载到其执行的应用程序域中。 所以这自然意味着所有其他程序集必须从web.config获取其配置值(例如连接字符串和应用程序设置)。 有没有办法可以覆盖这个? 一些配置可以来自web.config; 其他人必须分开居住。 我应该采用什么样的方法来开发这样的.net程序集? 目标是,一旦这个应用程序进入客户端环境,并且客户端决定在遥远的未来某处添加程序集,他应该能够毫不费力地这样做,并且在不影响其他程序集的情况下更改该程序集的配置。 所以最终我必须提出一种基于框架的方法? 这种效果已经有了什么吗? 或者我该如何解决这个问题? 我面临的挑战是什么?

具有多个参数的SQLCLR自定义聚合

我无法理解CLR用户定义的聚合如何工作。 我必须创建一些具有多个参数的自定义CLR聚合。 关键是要根据第二个参数得到第一个参数的值。 例如,我的表中有以下值,我需要每个Type的最旧员工Name : Type | Name | Age ——————————– Manager | emp 1 | 35 Manager | emp 2 | 42 Developer | emp 3 | 36 Developer | emp 4 | 45 Developer | emp 5 | 22 所以我想写这样的查询来通过使用我的程序集得到结果: Select Type, dbo.fOldestEmployee(Name, Age) AS [Name] From xxx Group By Type 这会回应: Type […]

具有多个sql_variant参数的SQLCLR自定义聚合

HY, 几个月前我在这篇文章中发布了一个关于CLR User-Defined Aggregates的问题。 这就像一个魅力。 但是现在我想在sql_variant类型中使用两个参数完全相同的函数。 就像在我上一篇文章中一样,这两个函数将是sMax和sMin,并将根据第二个函数返回第一个值。 我发现sql_variant类型是C#中的对象类型。 但我很难积累和比较对象。 在不知道类型的情况下比较这两个对象的最佳选择是什么?

如何从GAC加载特定版本的程序集

出于测试目的,我喜欢从GAC加载特定版本的DLL程序集。 但是,我的程序总是加载最新版本 – 我认为由策略程序集驱动。 var dll = Assembly.Load(“Oracle.ManagedDataAccess, Version=4.121.1.0, Culture=neutral, PublicKeyToken=89b483f429c47342”); Console.WriteLine(dll.ToString()); 输出: Oracle.ManagedDataAccess, Version=4.122.1.0, Culture=neutral, PublicKeyToken=89b483f429c47342 即使我以强名称指定版本“4.121.1.0”,它也会加载版本“4.122.1.0”。 有没有办法强制使用特定版本? 来自fuslogvw.exe中请求的fuslogvw.exe结果: *** Assembly Binder Log Entry (29.06.2017 @ 11:24:15) *** The operation was successful. Bind result: hr = 0x0. The operation completed successfully. Assembly manager loaded from: C:\Windows\Microsoft.NET\Framework64\v4.0.30319\clr.dll Running under executable C:\Programs\Tools\ConnectionTester_x64.exe — A detailed error […]

为什么C# – > CIL在每条指令上都有标签?

在已编译的C#程序上使用ILDASM.exe时,它会显示方法中的每条指令都有一个标签。 例如: IL_0001: ldc.i4.4 IL_0002: stloc.0 IL_0003: ldc.r8 12.34 IL_000c: stloc.1 IL_000d: ldc.r8 3.1415926535897931 IL_0016: stloc.2 IL_0017: ldstr “Ehsan” IL_001c: stloc.3 IL_001d: ret 为什么是这样? 这样做效率不高或者CIL编译器本身是否优化这些标签?

如何避免加载不合规的程序集

ASP.NET .NET 4.6 MVC4应用程序加载了unnessecary assemblie,eq。 System.Data.OracleClient。 没有使用Oracle。 使用控制器中的代码创建程序集依赖项 var sb = new StringBuilder(); foreach (Assembly b in AppDomain.CurrentDomain.GetAssemblies()) { sb.AppendLine(b.FullName); foreach (AssemblyName an in b.GetReferencedAssemblies()) sb.AppendLine(” ” + an.Name); } 输出低于。 根据此System.Web引用System.Design和System.Design对System.Data.OracleClient的引用 MVC应用程序在内存有限的VPS服务器中运行。 如何解决这个问题,以便不加载unnessecary程序集? 这有望在VPS服务器中释放一些内存。 mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 System.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a mscorlib System.Drawing System System.Configuration System.Core System.Data System.Xml System.DirectoryServices System.EnterpriseServices System.Web.RegularExpressions System.Design System.Web.ApplicationServices […]

在类库中实例化Castle Windsor容器时的最佳做法是什么?

我想知道实例化温莎城堡容器的最佳位置在一个类库中。 我应该只在我正在使用的类的构造函数中执行它,还是有一个我不知道的程序集入口点? 谢谢。