我花了一些时间来发现这一点,但是像TemplatePart
这样的特定于设计器的属性现在导致我的UWP应用程序的发布版本出现问题。
将此属性应用于控件是使用反射。
[TemplatePart(Name = PART_Panel, Type = typeof(Panel))]
public class MyAwesomeControl : Control
{
...
}
构建输出给了我这个:
警告:键入' Windows.UI.Xaml.Controls.Panel'不包括在内 编译,但在类型' MyAwesomeControl'中引用。也许有 一直缺少集会。
如果您希望构建工作,我必须排除该属性。但是,这违背了控制库的目的。我的图书馆用户不知道MyAwesomeControl模板中需要Panel
名称为PART_Panel
。
有解决方案吗?我是否必须为该类型启用反射才能允许设计时属性通过?
我知道可以嵌入项目的rd.xml
文件。但是,如果包含<Type Name="Windows.UI.Xaml.Controls.Panel" ... />
,则表示我告诉编译器将该面板从.Net Native优化中排除?
答案 0 :(得分:4)
这是您正在运行的.Net Native工具(ilc.exe)版本中的一个不幸错误。从Visual Studio的Update 1版本开始,此属性得到了正确支持。你可以在这里获得RC:https://www.visualstudio.com/en-us/news/vs2015-update1-vs.aspx
如果您使用较旧的工具,可以放心地忽略该警告。