如何从WPF组件中删除baml?

如何从WPF组件中删除baml?,wpf,reflection,.net-assembly,mono.cecil,baml,Wpf,Reflection,.net Assembly,Mono.cecil,Baml,使用合并的资源字典会降低应用程序性能。在我的程序集中,我经常需要使用合并的资源字典。我想将资源合并到一个字典中,并删除原始的baml。我不能将Build Action设置为None(而不是Page),因为在这种情况下,我会丢失一些功能(例如,resharper没有突出显示语法)。如何执行此操作?在运行时,应用程序仍需要读取链接的BAML资源文件,因此无法从程序集中删除BAML 例如: 您可以合并以下资源字典 字典1.xaml dictionary2.xaml 在merged.xaml中 您不

使用合并的资源字典会降低应用程序性能。在我的程序集中,我经常需要使用合并的资源字典。我想将资源合并到一个字典中,并删除原始的baml。我不能将Build Action设置为None(而不是Page),因为在这种情况下,我会丢失一些功能(例如,resharper没有突出显示语法)。如何执行此操作?

在运行时,应用程序仍需要读取链接的BAML资源文件,因此无法从程序集中删除BAML

例如:

您可以合并以下资源字典

  • 字典1.xaml
  • dictionary2.xaml
merged.xaml

您不能简单地删除已编译的XAML(BAML-
dictionary1.BAML
dictionary2.BAML
),因为正如我所写的,在运行时您仍然需要这些资源


但是,无论如何,您可以直接将XAML资源的内容复制到
merged.XAML
,这样您将只有
merged.baml
(在编译器在您的程序集资源部件中生成它之后)。

我已经将内容从字典复制到merged.xml文件,但我不想删除dictionary1.xaml和dictionary2.xaml文件,但我需要删除它,因为否则编译器将生成dictionary1.baml和dictionary2.baml。我可以手动删除dictionary1.baml和dictionary2.baml吗?是的,您可以删除这些文件,因为您可以删除任何其他未受保护或未被其他进程使用的文件(如果使用VS,您通常可以在
obj
目录下找到它们),但是,正如我所写的,这些文件是应用程序所需要的。否,我的应用程序不需要这些文件。merged.xaml已经包含dictionary1.xaml和dictionary2.xaml的所有数据,因为我将dictionary1.xaml和dictionary2.xaml的数据复制到merged.xaml。我不使用ResourceDictionary.MergedDictionary属性。因此,如果需要,请删除字典,或者最多将其生成操作设置为
None
。我不希望将生成操作设置为None(而不是Page),因为在这种情况下,我会丢失一些功能(例如,Resharper不会突出显示语法)。