草庐IT

AppInit_DLL

全部标签

c# - 以编程方式获取 DLL 的版本号

是否可以从任何.NETDLL中以编程方式获取版本号?如果是,怎么办? 最佳答案 如果dll是.net或Win32,这会起作用。反射方法仅在dll为.net时有效。另外,如果你使用反射,你就有将整个dll加载到内存中的开销。以下方法不会将程序集加载到内存中。//Getthefileversion.FileVersionInfomyFileVersionInfo=FileVersionInfo.GetVersionInfo(@"C:\MyAssembly.dll");//Printthefilenameandversionnumber.

c# - 相当于库 (DLL) 的 'app.config'

对于库(DLL)是否有等同于app.config的东西?如果没有,存储特定于库的配置设置的最简单方法是什么?请考虑该库可能用于不同的应用程序。 最佳答案 您可以有单独的配置文件,但您必须“手动”阅读它,ConfigurationManager.AppSettings["key"]将只读取正在运行的程序集的配置。假设您使用VisualStudio作为IDE,您可以右键单击所需的项目→添加→新项目→应用程序配置文件这将添加App.config到项目文件夹,将您的设置放在下部分。如果您不使用VisualStudio并手动添加文件,请确保为

c# - 依赖 DLL 未被复制到 Visual Studio 中的构建输出文件夹

我有一个visualstudio解决方案。我在解决方案中有很多项目。有一个主要项目作为启动并使用其他项目。有一个项目说“ProjectX”。它的引用被添加到主项目中。ProjectX引用了另一个不属于解决方案的.NETdll(比如abc.dll)。现在应该将这个abc.dll复制到主项目的bin/debug文件夹中,但它没有被复制到那里。为什么它没有被复制,有任何已知的原因吗? 最佳答案 我发现如果ProjectX引用了abc.dll但没有直接使用abc.dll中定义的任何类型,那么abc.dll将不会被复制到主输出文件夹。(它将被

c# - 无法加载 DLL 'SQLite.Interop.dll'

我会定期收到以下异常:无法加载DLL“SQLite.Interop.dll”:找不到指定的模块。(HRESULT异常:0x8007007E)我使用的是1.0.82.0。版本,在VS2010,操作系统Win764中使用nuget安装它。一旦异常开始出现,它就会不断出现——在VS内部或外部的调试、发布和运行应用程序中。停止它的唯一方法是注销和登录。不抛出异常并加载dll。它可以工作几天,但随后可能会再次损坏。有没有人见过这样的事情,有解决办法吗? 最佳答案 我知道我来晚了,但我在今天下载最新的x86/x64(版本1.0.88.0)后就遇

C# DLL 配置文件

我试图将app.config文件添加到我的DLL,但所有尝试都失败了。根据“PuttingconfigurationinformationinaDLL”中的MusicGenesis'这应该不是问题。所以很明显我做错了什么......以下代码应从我的DLL返回我的ConnectionString:returnConfigurationManager.AppSettings["ConnectionString"];但是,当我将app.config文件复制到我的控制台应用程序时,它工作正常。有什么想法吗? 最佳答案 为.DLL创建.NET

c# - 找不到编译动态表达式所需的一种或多种类型。您是否缺少对 Microsoft.CSharp.dll 和 System.Core.dll 的引用?

我正在尝试在MicrosoftVisualC#2010中编译此代码usingSystem;usingSystem.Globalization;classmain{staticvoidMain(){dynamicd;d="dyna";Console.WriteLine(d);}}但是我得到了这两个错误错误1​​未定义或导入预定义类型“Microsoft.CSharp.RuntimeBinder.Binder”错误2找不到编译动态表达式所需的一种或多种类型。您是否缺少对Microsoft.CSharp.dll和System.Core.dll的引用?我读了这个其他post但我是C#的新手,我

c# - 将 DLL 嵌入已编译的可执行文件中

是否可以将预先存在的DLL嵌入到已编译的C#可执行文件中(这样您只有一个文件可以分发)?如果可能,人们将如何去做?通常,我很乐意将DLL留在外面并让安装程序处理所有事情,但工作中有几个人问过我这个问题,老实说我不知道​​。 最佳答案 我强烈推荐使用Costura.Fody-迄今为止在程序集中嵌入资源的最好和最简单的方法。它以NuGet包的形式提供。Install-PackageCostura.Fody将其添加到项目后,它会自动将所有复制到输出目录的引用嵌入到您的main程序集中。您可能希望通过向项目添加目标来清理嵌入的文件:Inst

c# - 找不到元数据文件 '.dll'

我正在处理一个WPF、C#3.0项目,我收到此错误:Error1Metadatafile'WORK=-\Tools\VersionManagementSystem\BusinessLogicLayer\bin\Debug\BusinessLogicLayer.dll'couldnotbefoundC:\-=WORK=-\Tools\VersionManagementSystem\VersionManagementSystem\CSCVersionManagementSystem这是我引用我的用户控件的方式:xmlns:vms="clr-namespace:VersionManageme

go - 在 Go 中加载 Windows DLL?

我需要在我的应用程序中使用WindowsDLL,特别是kernel32.dll。我只找到这个:WindowsDLL但是那个“指南”并不是那么直观。例如,在Python中您使用ctypes。ej:ctypes.windll.kernel32.SetConsoleTextAtribute(句柄,颜色)我如何才能用Golang制作同样的东西?任何人都可以举出一些我想要的例子吗? 最佳答案 实际上,您拥有的链接是一个很好的引用。您现在所需要做的就是选择一种建议的实现方式。您可以在此处找到kernel32.SetConsoleTextAtri

VS2022环境下C++ DLL动态链接库的编写和调用

一、编写DLL动态链接库1、新建动态链接库项目2、新建类3、宏定义#ifdefDLL_API#defineDLL_API_declspec(dllexport)#else#defineDLL_API_declspec(dllimport)#endif4、使用宏定义修饰类/*h*/#pragmaonce#ifdefDLL_API#defineDLL_API_declspec(dllexport)#else#defineDLL_API_declspec(dllimport)#endifclassDLL_APIAdd{public: Add(); ~Add(); staticintadd(inta