【发布时间】:2013-10-14 15:29:35
【问题描述】:
我有一个调用 msi 安装程序的程序。成功安装 msi 包后,我尝试加载由 gac 中的 msi 包添加的程序集。我无法加载程序集,但此特定程序集已添加到 GAC。当我第二次运行程序时,程序集被正确加载。 这是伪代码
load assembly(assemblyname)
{
if(!Assembly.load(assemblyname))
msi.install();
Assembly assembly =Assembly.load(assemblyname)
if(assembly == null)
console.writeline("assembly not loaded");
}
如果尚未安装 msi 包,当我第一次运行此功能时,我总是会得到未加载的程序集。 不知何故,我认为这与程序执行之前存在的 GAC 列表有关。有没有办法让我重新加载这个?
【问题讨论】:
-
我认为它正在缓存结果
-
你可以尝试在不同的应用程序域中进行第一次测试
-
您是否尝试过使用完全限定的程序集名称?
-
msi.install 如何知道何时完成?
-
我已经编辑了你的标题。请参阅“Should questions include “tags” in their titles?”,其中的共识是“不,他们不应该”。
标签: c# assemblies