在Blend 4中访问设计时程序集

3

我在使用Blend 4设计时遇到了异常。

经过排查,发现是加载特定库时出现问题。其他库可以正常加载,只有这个库无法加载。因此,针对以下代码:

var a = Assembly.Load("lib1");
var b = Assembly.Load("lib2");

第二行代码将会抛出异常:无法加载文件或程序集“lib2”的某个依赖项。系统找不到指定的文件。

如果在 Blend 之外运行相同的代码,则不会抛出异常。两个程序集在项目中似乎以相同的方式被引用,并且都标记为“拷贝本地”。

如何排除此问题?有什么建议吗?

1个回答

2
在设计时,Blend会将您的程序集复制到临时文件夹中,而不是输出文件夹中,因此在运行程序时可能会有不同的行为。在设计时,Blend还需要“Any CPU”配置,因此如果您通常运行“x86”,仅因此就可能获得不同的结果。
但是,Blend本身就像其他托管程序一样,为了详细诊断问题,您可以打开Fusion Log Viewer查看程序集绑定错误,以尝试找出出现问题的原因。假设库本身应该在其所在的位置(在Blend的临时文件夹中),但其中一个间接依赖项没有被找到。通过使用具有足够详细信息的日志查看器,您应该能够看到导致问题的特定绑定失败。
以下是链接:

1
融合日志显示它正在尝试从c:\Program Files\Microsoft Expression\Blend 4加载程序集。如果我将程序集放入该目录,它可以正常加载。非常奇怪。 - oillio
我已经移除了汇编代码,重新构建了项目,然后再加入汇编代码。现在一切都正常工作了。所以这是一个非常值得花费一个小时的好事情。感谢你的建议。 - oillio

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接