我正在编写用于 WPF 和 Silverlight 的代码。在 C# 中,我可以"#if SILVERLIGHT"
用于条件编译,它可以工作。
但是,在 XAML 中,我必须使用完全不同的 XAML 文件,因为某些属性根本不兼容。XAML 文件有 99% 的点赞率,保持它们同步很麻烦。
我想将它们转换为 T4 模板,因此我可以执行以下操作:
<SomeControl <#=ClipsToBounds()#> />
为 WPF 和SilverlightClipsToBounds()
生成不同文本的位置。要求是:
- 处理 XAML 时的智能感知
- 构建时生成的模板
- 该项目必须是独立的,并且可以使用 Visual Studio 的库存版本:不接受安装各种 SDK 和 3rd 方编辑器
- 模板运行的结果不应在源代码管理中。-
我发现我可以更改custom tool
XAML 文件,MSBuild:Compile to TextTemplatingFileGenerator
并且不会丢失 Intellisense。但是,生成的模板是在设计时生成的。然后在构建时生成似乎是一个很大的痛苦。
有没有人有这种设置的成功经验?