我有一个已经创建的程序集,比如Static.dll
,以及我在运行时创建的动态程序集,比如Dynamic
。 Dynamic
创建一些IL代码以从Static.dll
创建新类型。创建Dynamic
(它成功保存)后,可执行文件在运行时会因为无法加载程序集Static.dll
类型而出错。我相信这是发生的,因为Dynamic
exe输出找不到这个dll(或者至少这是我的猜测)。
如何完成添加此Static.dll
引用,以便当有人运行Dynamic
的结果可执行输出时,它可以找到引用的类型?
我知道Assembly.Load()
,但仅凭这一点并没有改变任何事情。或者至少,我不确定这给了我什么,因为我不需要在运行时使用该类型,而是在运行Dynamic
可执行文件时。
最后,我控制Static.dll
,所以如果我可以用项目来修复它,可以这样做,但是,它确实需要保持独立(我不想发出这个库每次我创建一个动态组件)。基本上,我想我希望我的动态程序集中有一个.assembly extern mscorlib
,显式保存Static
是mscorlib的位置。
由于
答案 0 :(得分:2)
如何完成添加此
Static.dll
引用,以便当有人运行Dynamic
的结果可执行输出时,它可以找到引用的类型?
将自动添加引用。请注意,正常的程序集探测规则适用于动态程序集执行时,因此要查找程序集。你必须(其中之一):