gpt4 book ai didi

expression-blend - 如何清除 Expression Blend 4 缓存的解决方案信息?

转载 作者:行者123 更新时间:2023-12-04 08:30:30 25 4
gpt4 key购买 nike

我似乎很擅长让 Expression Blend 4 在启动时崩溃。该问题似乎与初始化静态托管和非托管变量的死锁有关,因为 Blend 首先打开我的解决方案,其中混合了非托管 C++ 和托管代码项目。 Blend 在实例化我的 ViewModel 时崩溃(我在 App.xaml 中使用 MVVM Light,但我认为这并不真正相关)。此页面详细描述了如何检测和纠正这种潜在的死锁:Initialization of Mixed Assemblies

由于我同时在 VS2010 和 Blend4 中编写代码和标记,有时我会不小心造成这种情况,然后 Blend 在加载我的解决方案时崩溃。即使我在 VS2010 中更正了问题,Blend 启动崩溃仍然存在(VS2010 似乎不会在导致 Blend 崩溃的同一解决方案文件上崩溃)。 Blend 启动崩溃可能发生在 x86 和 x64 系统上。即使我尝试删除所有输出目录,Blend 启动崩溃仍然存在。即使我重命名“C:\Users\username\AppData\Local\Microsoft\Expression\Blend”,Blend 启动崩溃仍然存在。

我的问题是:如何将 Blend 重置为一种状态,就好像它以前从未见过这个解决方案一样?

我假设这将是一个有效的解决方法,因为如果我从源代码管理下载我的源代码的新副本并修复了托管/非托管问题,它会在 Blend4 中加载、构建和运行得很好。

最佳答案

Blend 崩溃的主要原因是因为在初始化 UI 组件时它实际上运行了它们的构造函数,它可以有一些代码,例如访问数据库,而 Blend 不支持数据库访问,所以它可能会崩溃。

所以有两种方法可以找到潜在的问题。

注释掉 UI 元素的构造函数中除 InitializeComponent() 之外的所有代码,以找出有问题的代码

或者

将 Visual Studio Debugger 附加到 Blend,然后重建项目或打开 craheshes blend 的 XAML 文件

要执行第二个选项,您需要转到调试器 -> 附加到进程 -> 从列表中选择混合。

当您识别出导致 Expression Blend 崩溃的代码时,只有一个 if 语句会停止运行代码,如果是 blend 试图执行它,或者它不只是运行它。所以像这样:

if(DesignerProperties.IsInDesignModeProperty)
{
// This code will run when Blend renders the controls
}
else
{
// This code will run when you are running application on it's own
}

希望这对您有所帮助。

关于expression-blend - 如何清除 Expression Blend 4 缓存的解决方案信息?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9780005/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com