Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在没有WPF的程序集中嵌入BAML_Wpf_Xaml_Msbuild_Baml - Fatal编程技术网

在没有WPF的程序集中嵌入BAML

在没有WPF的程序集中嵌入BAML,wpf,xaml,msbuild,baml,Wpf,Xaml,Msbuild,Baml,我希望将编译后的XAML嵌入到程序集中,如BAML2006 如果选择Embedded Resource MSBuild操作,则XAML文件将作为文本资源嵌入到程序集中,该文本资源可以像任何其他松散的XAML资源一样读取。但是,对于引用的名称空间,loose XAML有一些缺陷,最严重的是,在解析loose XAML之前,必须将其[xmlnDefinitionAttribute]引用的任何名称空间加载到AppDomain。与此相反,嵌入式BAML不受此影响,因为包含命名空间的程序集被添加到引用程序

我希望将编译后的XAML嵌入到程序集中,如BAML2006

如果选择Embedded Resource MSBuild操作,则XAML文件将作为文本资源嵌入到程序集中,该文本资源可以像任何其他松散的XAML资源一样读取。但是,对于引用的名称空间,loose XAML有一些缺陷,最严重的是,在解析loose XAML之前,必须将其
[xmlnDefinitionAttribute]
引用的任何名称空间加载到
AppDomain
。与此相反,嵌入式BAML不受此影响,因为包含命名空间的程序集被添加到引用程序集的列表中,并在任何代码开始运行之前由
AppDomain
自动加载

如果选择了页面MSBuild任务,XAML将“编译”到BAML2006中,并嵌入到包含程序集的
.resources.g
。但是,如果未引用
WindowsBase
PresentationCode
PresentationFramework
程序集,编译将失败。由于我正在从事一个使用XAML但不使用WPF的项目(我们使用
XamlObjectWriter
和自定义标记扩展加载对象图,但重用Visual Studio的一些XAML编辑器基础结构以支持IntelliSense),我希望避免依赖这些库

有没有办法使MSBuild嵌入BAML并添加所需的程序集引用而不依赖于WPF

我想工作流基金会使用了类似的方法,但我没有找到任何信息。