5

我需要 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

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

我做错了什么,还是有其他方法?

编辑: 我注意到进行完整的重建每次都会调用 Bootstrapper。也许这可以作为一种解决方法,但我仍然想理解它。

4

1 回答 1

3

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

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

附带说明一下,我对 VS XAML UI 设计器进程 (xDesProc) 的经验表明,它并不总是能捕捉到我在重新构建后所做的更改,我必须使用任务管理器强制重新加载它,混合可能会发生 sme。

于 2013-02-28T18:37:45.523 回答