【问题标题】:Accessing assemblies at design time in Blend 4在 Blend 4 中的设计时访问装配体
【发布时间】:2011-05-13 21:10:04
【问题描述】:

在 Blend 4 中进行设计时,我的代码出现异常。

我已将问题缩小到加载特定库。其他库可以正常加载,只是这个失败。所以,对于这段代码:

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

第二行将引发异常:无法加载文件或程序集“lib2”或其依赖项之一。系统找不到指定的文件。

如果相同的代码在 Blend 之外运行,它不会抛出异常。这两个程序集在项目中的引用方式似乎相同,并且都标记为 Copy Local。

关于如何解决此问题的任何建议?

【问题讨论】:

    标签: c# expression-blend design-time


    【解决方案1】:

    在设计时,Blend 将您的程序集复制到一个临时文件夹而不是输出文件夹,因此事情的行为可能与您正常运行程序时不同。 Blend 还需要在设计时使用“任何 CPU”配置,因此如果您正常运行“x86”,您可以获得不同的结果。

    但是 Blend 本身和其他任何程序一样是一个托管程序,要详细诊断问题,您可以打开 Fusion Log Viewer 查看程序集绑定错误,以尝试找出问题所在。据推测,库本身就在它应该在的位置(在 Blend 的临时文件夹中),但没有找到它的间接依赖项之一。通过使用足够详细的日志查看器,您应该能够看到导致问题的特定绑定失败。

    这是一个链接:

    【讨论】:

    • 融合日志显示它正在尝试从 c:\Program Files\Microsoft Expression\Blend 4 加载程序集。如果我将程序集放入该目录,它可以正常加载。很奇怪。
    • 我删除了程序集,重新构建,然后重新添加了它。现在它工作正常。那真是浪费了一个小时。感谢您的建议。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-03-12
    • 2023-03-22
    • 2015-06-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多