0

在创建 Windows Phone 7 应用程序时,我在 Visual Studio 2010 中遇到了一个奇怪的行为。一段时间后,VS 开始抱怨 Invalid XAML 虽然没有问题,并且应用程序编译并运行得很好。

它困扰着我,因为我不能使用可视化设计器说“在“DataTemplate”上引发了异常:无效的 XML”,并且代码中突出显示了一个 DataTemplate。数据模板总是好的,当复制粘贴到另一个项目时,VS 不会抱怨它。

我发现有问题的通常是带有自定义转换器的 DataTemplates 或使用 PhonePerformance 之类的类时。

有时错误是“由于文档错误引发的异常:无效的 XML”,并且 XAML 文件中甚至没有突出显示。

我尝试重新安装.NET。Visual Studio 等,并且问题发生在两台独立的机器上,所以我认为它不是特定于我的配置。它可能特定于我的代码。

有没有人经历过类似的行为?

4

3 回答 3

1

使用 XAML 时,如果您引用需要评估但不能在设计时进行评估的库,则会出现此类错误。您可以关闭可视化编辑器并只在 XAML 中工作 - 这将停止错误(并节省您的时间)。

于 2012-07-19T15:02:22.990 回答
1

您重新安装了 .NET 和 VisualStudio ???您应该刚刚启动了第二个实例,在两个实例中都打开了解决方案,然后将调试器从一个实例附加到第二个实例,并打开了可视化编辑器。它会准确地告诉您代码中导致问题的原因。转换器中还有DesignerProperties.IsInDesignMode。天哪。你浪费了这么多时间:(

至于设计时数据,这很棘手。要么您拥有不是的 DesignTimeDataWithDesignTimeCreatableTypes,要么是无法为您的真实类型创建代理的 DesignData(无论出于何种原因,过去曾多次遇到此问题)。

解决这个问题的唯一方法是从另一个实例中调试一个实例。它实际上并不难。我经常这样做(调试 WF4 ActivityDesigners)。

于 2012-07-19T15:55:59.540 回答
1

一位朋友找到了解决方案,您不会相信问题出在哪里。如果程序集名称中有空格,则会发生这种情况。我发现我在所有有问题的项目中的程序集名称中确实有一个空格,重命名了程序集并且设计器再次工作。

这里也提到了解决方案http://forums.silverlight.net/t/115011.aspx/1

于 2012-07-20T07:15:49.357 回答