【发布时间】:2017-10-23 15:29:59
【问题描述】:
我很难让 XAML 智能感知与打包在 Nuget 中的程序集一起工作。
我创建了一个 nuget,其中包含一个带有一堆资源字典的 dll。我已将所有 .dll、.pdb、.pri、.xaml 和 .xr.xml 文件包含在 nuget 中。
在我的消费应用程序中,我尝试如下使用这些资源字典:
<App.Resources>
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="ms-appx:///StyleTest/Brushes.xaml"></ResourceDictionary>
<ResourceDictionary Source="ms-appx:///StyleTest/Spacings.xaml"></ResourceDictionary>
</ResourceDictionary.MergedDictionaries>
</ResourceDictionary>
</App.Resources>
样式在运行时解析,但在设计时我似乎无法为它们获得智能感知(即使设计师显示了正确的颜色)注意波浪线:
我还尝试在资源项目中为我的样式添加代码,并像这样使用:
<App.Resources>
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<Styles:Brushes/>
</ResourceDictionary.MergedDictionaries>
</ResourceDictionary>
但结果相同。
有没有人成功地为 VS2017 中 Nugets 中打包的资源字典启用 XAML 智能感知?
【问题讨论】:
-
您是否尝试在解决方案资源管理器中将 XAML 文件作为内容类型为 xaml 的文件打开? (右键单击 xaml 文件并选择 Open With... 在弹出窗口中选择“XAML Designer with Encoding”并单击 OK。)
-
嗨@Leo-MSFT!不幸的是,用编码打开它没有任何区别。
-
好消息和坏消息。当我禁用 resharper 时,错误曲线消失了,但我仍然没有自动完成智能感知工作。
-
如果直接引用dll项目而不是nuget会出现什么结果?对于自动完成智能感知,您能否检查注册表的值:“HKEY_CURRENT_USER\Software\Microsoft\VisualStudio\15.0\Text Editor\XAML\Auto List Members”是否为“1”?
标签: visual-studio xaml uwp nuget uwp-xaml