.net-assembly相关内容

获取程序集可执行目录

我有两个应用程序,例如App1 和 App2.正常运行时,App1 会显示其程序集可执行位置.但是当我从 App2 调用 App1 时,它返回了 App2 的启动位置. 那么,当我从 App2 调用 App1 时,如何获取 App1 的启动路径? 解决方案 你可以通过这个获取当前正在执行的程序集的目录: string assemblyPath = Path.GetDirectory ..
发布时间:2021-11-26 11:57:29 C#/.NET

什么是缓存 AppData\Local\assembly\dl3?

我有这个程序集,出于某种原因,Windows 开始从这个路径加载: C:\Users\marius\AppData\Local\assembly\dl3\MP6PT6BV.2Z4\GMRQEZL9.LCB\46d762c5\8cf066ff_7eaecc01\X.DLL 这意味着无论我对程序集做了什么更改,它的新副本都不是从其输出文件夹加载的,而是从该缓存文件夹加载的.我尝试删除该文件夹,甚至 ..
发布时间:2021-11-26 11:57:20 C#/.NET

如何在 Visual Studio 2010 中添加 PNG 资源?

我有一个 PNG(即压缩图像),我想将它包含在我的程序集(即应用程序)中. 怎么做? 附加信息: 我尝试在 Visual Studio 2010 中向我的程序集添加一个 PNG 资源: 但这不起作用,因为 Visual Studio 将其转换为未压缩的位图: 除了我想添加一个 PNG. 否则我的 1MB 应用程序变成 8MB: ]=== 1MB 文件大小 == ..

如何在 .Net 中获取给定类型的程序集(System.Reflection.Assembly)?

在 .Net 中,给定一个类型名称,是否有一种方法可以告诉我该类型是在哪个程序集(System.Reflection.Assembly 的实例)中定义的? 我假设我的项目已经引用了那个程序集,只需要知道它是哪个. 解决方案 Assembly.GetAssembly 假定您拥有该类型的实例,而 Type.GetType 假定您拥有包含程序集名称的完全限定类型名称. 如果你只有基本 ..
发布时间:2021-11-26 11:57:06 C#/.NET

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

我目前正在使用内置的 TraceListener 开发应用程序日志库.这个库将在许多项目中使用,应该提供一个简单的界面,我只需要关心将要写入日志文件的内容,而不是如何写入. 通过使用反射命名空间,我可以找出当前调用日志函数的应用程序(检索执行程序集名称),但我还想要调用日志函数的函数和类的名称. 假设我有: public static void LogInfo(string vLog ..
发布时间:2021-11-26 11:56:45 C#/.NET

如何获得正在执行的程序集版本?

我正在尝试使用以下代码在 C# 3.0 中获取正在执行的程序集版本: var assemblyFullName = Assembly.GetExecutingAssembly().FullName;var version = assemblyFullName .Split(',')[1].Split('=')[1]; 还有其他合适的方法吗? 解决方案 两个选项...无论应用程序类型如何 ..
发布时间:2021-11-26 11:56:31 C#/.NET

缓存反射数据

缓存从反射获得的昂贵数据的最佳方法是什么?例如,大多数快速序列化程序缓存此类信息,因此它们不需要在每次再次遇到相同类型时进行反映.他们甚至可能生成一个动态方法,从类型中查找. .net 4 之前 传统上,我为此使用了普通的静态字典.例如: private static ConcurrentDictionary>缓存;公共静态 DoSomething(对象 o){动作行动;if ..
发布时间:2021-11-26 11:56:19 C#/.NET

堆栈的目的是什么?为什么我们需要它?

所以我现在正在学习 MSIL 以学习调试我的 C# .NET 应用程序. 我一直想知道:堆栈的目的是什么? 只是把我的问题放在上下文中: 为什么要从内存传输到堆栈或“加载"?另一方面,为什么要从堆栈转移到内存或“存储"?为什么不把它们都放在内存中? 是不是因为它更快? 是不是因为它是基于 RAM 的? 为了效率? 我试图掌握这一点,以帮助我更深入地理解 CIL 代码. ..
发布时间:2021-11-26 11:56:10 C#/.NET

访问新签名的第三方 DLL 出错

我有一个使用第三方 DLL 的签名应用程序.这些 DLL 未签名.- 到目前为止,第一步没有问题:我刚刚签署了它们(使用 ildasm.exe 获取 *.il,在 *.il 中只是获得 publickeytoken 因为它们具有相互依赖性,并使用 ilasm.exe 制作了 *.dll) 该项目现在可以正常编译并启动. 但是当在我的代码中调用了 3rd-party-DLL 的类构造函数 ..
发布时间:2021-11-26 11:55:50 C#/.NET

SQL Server 中的 CLR 程序集 C#

那么,是否可以用 C# 制作一个大项目(很多功能), 为它创建 CLR 程序集,然后, 在 SQL Server IN A STORED PROC 中,调用程序集中的函数, 该表(我将传递给 ASSEMBLY)在其他存储过程中计算... 如果是,步骤是什么? 我在想这样的事情. -- 我有一个获取表的存储过程,让它成为 myStoredProcTable--FIST 启用数 ..
发布时间:2021-11-26 11:55:41 C#/.NET

预加载所有程序集 (JIT)

我们在第一次加载一些繁重的 UI 屏幕时受到了打击.我们的项目分为一个主要的可执行文件和几个 DLL 文件.DLL 文件还可能包含首次加载时速度较慢的 UI 屏幕. 有没有办法(在代码中)我们可以预加载所有引用的程序集以避免 JIT 编译命中? 我知道有一种工具叫做 NGen.是否可以在开发环境中运行 NGen 以便我们立即看到其效果?但理想情况下,我们希望从代码中预加载引用的程序集. ..
发布时间:2021-11-26 11:55:34 C#/.NET

为什么安装了 .NET 4 的机器不能运行针对 .NET 4.5 的 exe 而如果它们使用相同的 CLR 版本?

在 公共语言运行时(CLR) Microsoft 页面,它说 .Net Framework 4 和 4.5 都使用 CLR 版本 4. 但是在此页面中 (.NET Framework 版本和依赖项)它写道“.Net Framework 4.5 版包括 CLR 4 的更新版本" 还写道: '针对 .NET Framework 4.5.1 的可执行文件将被阻止在仅安装了 .NET F ..
发布时间:2021-11-26 11:55:24 C#/.NET

了解 csproj 程序集参考

我正在使用 VS2010,我尝试通过文件引用将一些程序集从本地硬盘添加到我的 C# 项目中.查看 csproj 文件,我发现有时文件引用显示为 但有时它显示为 是什么导致了差异? 受到 k3b 回答的启发,我又做了一个测试.我创建了一个新的类库项目. 添加文件引用.Properties 窗格中 Specific Version 的初始值为 False.csproj 文件看起 ..
发布时间:2021-11-26 11:55:05 C#/.NET

为什么我(有时)必须引用我引用的程序集所引用的程序集?

我有一个程序集 A,它定义了一个带有一些重载的接口: 公共接口ITransform{点逆变换(点点);Rect InverseTransform(矩形值);System.Drawing.Point InverseTransform(System.Drawing.Point 点);} ...以及引用 A(二进制文件,而不是项目)并调用其中一个重载的程序集 B: var 变换 =(other.S ..
发布时间:2021-11-26 11:54:55 C#/.NET

检索 JIT 输出

我有兴趣查看 C# 程序(不是 CLR 字节码指令)的实际 x86 程序集输出.有什么好的办法吗? 解决方案 您应该将 WinDbg 与 SOS/SOSEX 一起使用,确保您要查看 x86 代码的方法在方法表中进行了 JIT,然后使用 查看实际反汇编u 命令.这样你就会看到实际的代码. 正如这里其他人提到的,使用 ngen 您可以看到与实际 JIT 编译结果不完全匹配的代码.使用 V ..
发布时间:2021-11-26 11:54:46 C#/.NET

Resharper 从不同位置运行 UnitTest

当我使用 Visual Studio 运行单元测试时,它工作正常,因为它从所有程序集所在的项目目录运行.但是当我使用 resharper 运行它时 出现错误 var services = Assembly.Load("SomeAssembly"); 有错误 无法加载文件或程序集“SomeAssembly"或其之一依赖关系.系统找不到指定的文件.. 所以我试过了 var path ..

Newtonsoft.Json 程序集冲突

我在我的项目中使用 Netonsoft.Json.它工作正常,直到我开始在我的项目中集成 Paypal SDK.我的代码如下. String AccessToken =new PayPal.OAuthTokenCredential("", "").GetAccessToken();---->>>>此行抛出错误PayPal.Api.Payments.Address add = new PayPa ..
发布时间:2021-11-26 11:54:20 C#/.NET