在 .NET 中动态添加引用
Posted
技术标签:
【中文标题】在 .NET 中动态添加引用【英文标题】:Adding references dynamically in .NET 【发布时间】:2013-10-24 07:00:23 【问题描述】:我有两个 dll (sqlite),一个 dll 是 64 位,另一个是 32 位 dll。是否可以根据处理器架构动态添加参考? P/Invoke 是我最后的选择。任何帮助将不胜感激!
示例代码:
string pathToDll = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location) + "\\x64\\System.Data.SQLite.dll";
Assembly assembly = Assembly.LoadFrom(pathToDll);
AppDomain.CurrentDomain.Load(assembly.GetName());
【问题讨论】:
Conditionally use 32/64 bit reference when building in Visual Studio的可能重复 也许对你有帮助。 ***.com/questions/3832552/… 人们可能希望编译为任何架构并在 32/64 上运行。当然你可以通过好的安装程序来解决这个问题,但这可能不是重复的 【参考方案1】:是的,您可以从文件中加载程序集
Assembly.LoadFrom("MyAssembly.dll");
从 .net4 你可以使用 Is64BitOperatingSystem 环境属性。否则检查 IntPtr.Size 会根据运行架构发生变化
Cannot encrypt / decrypt SQLite database in .NET4
【讨论】:
我将如何使用 dll 方法,因为我将动态添加引用? 我添加了一个链接到我的其他回复,这应该可以帮助你 我读到了 assembly.loadfrom 方法。看起来是真的,我明天确认解决方案 我尝试了 assembly.loadfrom 方法。它被加载但VS仍然抛出异常。它仍然认为文件是 x86(在 x64 机器上) 一个简单的问题,我可以将 System.Data.SQLite 命名空间伪造给编译器吗?以上是关于在 .NET 中动态添加引用的主要内容,如果未能解决你的问题,请参考以下文章