相关疑难解决方法(0)

如何在运行时后期绑定32位/ 64位lib

我遇到的问题与此处描述的类似,但略有不同(加载程序集及其依赖项).

我有一个用于3D渲染的C++ DLL,这是我们向客户销售的产品.对于.NET用户,我们将有一个CLR包装器.C++ DLL可以在32位和64位版本中构建,但我认为这意味着我们需要有两个CLR包装器,因为CLR绑定到特定的DLL?

现在假设我们的客户有一个可以是32位或64位的.NET应用程序,并且它是一个纯粹的.NET应用程序,它让CLR从一组程序集中解决它.问题是应用程序代码如何在运行时动态选择我们的32位和64位CLR/DLL组合?

更具体地说,这里也适用于上述问题的建议答案(即创建一个ResolveEvent处理程序)?

.net c# clr 64-bit x86-64

17
推荐指数
1
解决办法
4129
查看次数

调试动态加载程序集

我正在调试一个用Assembly.Load(Byte [])动态加载的程序集,但是我遇到了一些问题.

首先,我无法移动Visual Studio 2010中的黄色箭头以进入其他代码行,并且我在尝试快速监视时也会出现异常("无法在对象实例上找到该方法.")来自第三方库的对象(例如,来自Infragistics的控件).

Dim data = My.Computer.FileSystem.ReadAllBytes(file.FullName)
Assembly.Load(data)
Run Code Online (Sandbox Code Playgroud)

使用Assembly.Load(String)时,一切正常,没有问题.

Assembly.Load(IO.Path.GetFileNameWithoutExtension(file.Name))
Run Code Online (Sandbox Code Playgroud)

知道为什么这种行为会有很大不同吗?有任何解决这个问题的方法吗?

我尝试使用Assembly.Load(byte [].byte [])加载程序集的调试符号,但在尝试从第三方库调试对象时仍然会出现异常.

.net vb.net assemblies dynamic

7
推荐指数
1
解决办法
4546
查看次数

Assembly.Load和Environment.CurrentDirectory

我意识到这里有一个相关的线程: 加载程序集及其依赖项

但我正在修改一些东西,这并不完全适用.

string path = Path.GetDirectoryName( pathOfAssembly ); 
Environment.CurrentDirectory = path;
Assembly.Load(Path.GetFileNameWithoutExtension(pastOfAssembly));
Run Code Online (Sandbox Code Playgroud)

你真的有理由这样做吗?使用它不会更有意义吗:

Assembly.LoadFile(pathOfAssembly);
Run Code Online (Sandbox Code Playgroud)

任何见解将不胜感激.

.net c# assemblies

2
推荐指数
1
解决办法
1878
查看次数

标签 统计

.net ×3

assemblies ×2

c# ×2

64-bit ×1

clr ×1

dynamic ×1

vb.net ×1

x86-64 ×1