我想将编译后的 XAML 作为 BAML2006 嵌入到程序集中。
如果选择了Embedded Resource MSBuild 操作,XAML 文件将作为文本资源嵌入到程序集中,可以像任何其他松散 XAML 资源一样进行读取。但是,松散的 XAML 在涉及到引用的命名空间时有一些严重的限制,最严重的是,在解析松散的 XAML 之前,[XmlnsDefinitionAttribute]
必须将其引用的任何命名空间加载到 中。AppDomain
相反,嵌入式 BAML 不受此影响,因为包含命名空间的程序集被添加到引用的程序集列表中,并AppDomain
在任何代码开始运行之前由自动加载。
如果选择了Page MSBuild 任务,XAML 将“编译”到 BAML2006 中并嵌入到.resources.g
包含程序集的 。但是,如果未引用 和 程序集,编译WindowsBase
将失败PresentationCode
。PresentationFramework
由于我正在开发一个使用 XAML 但不使用 WPF 的项目(我们使用XamlObjectWriter
自定义标记扩展加载对象图,但重用 Visual Studio 的一些 XAML 编辑器基础结构以支持 IntelliSense),我想避免依赖这些库。
有没有办法让 MSBuild 嵌入 BAML 并添加所需的程序集引用而不依赖于 WPF?
我猜 Workflow Foundation 使用了类似的方法,但我一直无法找到任何信息。