使用Roslyn编译XAML

5
有没有办法使用Roslyn编译器来编译WPF UserControl?假设您想要编译一个包含标准C#代码和WPF控件(XAML和xaml.cs文件)的程序集,而不使用任何csproj。我在网上找到了很多关于如何使用Roslyn编译DLL的信息,但没有关于如何处理XAML文件的信息。我知道Visual Studio(或MSBuild)会创建一个临时生成的文件,并将BAML文件嵌入到生成的程序集中。因此,如果我能找到一种生成这个中间文件的方法,就可以使用它,但我找到的所有内容都需要最终的csproj,比如PresentationBuildTasks.MarkupCompilePass(好吧,我可能会动态生成一个项目,但我希望找到更简单的方法)。

4
Roslyn只是C#(和VB)编译器,它不知道XAML的任何内容。但是,您应该能够像旧的C#编译器一样,在使用XAML工具时与Roslyn编译器配合使用。 - svick
Xaml 工具?你是指使用 MsBuild 生成 baml 吗? - Jams
是的,或者无论 msbuild 实际使用来生成 BAML 和部分类。 - svick
http://referencesource.microsoft.com/#PresentationBuildTasks/src/BuildTasks/Microsoft/Build/Tasks/Windows/MarkupCompilePass1.cs 似乎不需要 csproj 文件。 - SLaks
@SLaks 这个链接最近已经更新:MarkupCompilePass1.cs - Borislav Ivanov
1个回答

3
如果你的目标是将XAML编译成C#,可以查看XAML Code Behind Generator插件,详情请访问http://xamlgenerator.codeplex.com/。该插件是Visual Studio 2010的一个插件,可将XAML编译为相应的C#代码。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接