Blend不会调用DesignTimeBootstrapper

Jen*_*ens 5 c# wpf visual-studio-2010 expression-blend

我需要Blend 4来调用一些初始化代码才能合理地显示我的应用程序,我正在使用Josh Smith的这种方法来完成它.

我使用以下项目结构:

MainProgram
  -- Properties
     -- AssemblyInfo.cs (including the custom attribute)
  -- App.xaml
  -- HostWindow.xaml    (UserControls are embedded here)
  -- DesignTimeBootstrapperAttribute.cs

ViewsAssembly
  -- Lots of user controls
Run Code Online (Sandbox Code Playgroud)

出于某种原因,每次构建后都不会调用设计时引导程序(导致我的自定义标记扩展在Blend中抛出异常和大量错误消息).然而,在最初加载解决方案时调用它,我不理解Blend在这里的行为方式.

我做错了什么,还是有另一种方法?

编辑: 我注意到,完成重建确实每次调用Bootstrapper.也许这可以作为一种解决方法,但我仍然想了解它.

Isa*_*pov 3

您能否验证,在重建后,您是否确实更改了主应用程序的程序集二进制文件,而这些二进制文件不执行启动?(如果二进制文件没有改变,我希望 Blend 不会评估反射)。我也会尝试清洁解决方案,而不是重建。

作为一项繁重的解决方案,您可能会考虑在构建后事件中更改解决方案/项目文件(例如添加空格),这将导致 Blend 重新加载解决方案并再次执行您的自定义启动代码。

附带说明一下,我对 VS XAML UI Designer 进程 (xDesProc) 的经验表明,它并不总是能捕获我在重新构建后所做的更改,我必须使用任务管理器来终止它以强制重新加载,混合可能会发生这种情况。