设计时间错误非常烦人

时间:2013-09-19 17:12:34

标签: c# wpf crystal-reports custom-controls

我在许多不同的项目上一直出现错误,似乎随机发生。所有项目都是WPF。

在设计时它会抛出水晶报告错误并拒绝向我显示设计窗口。在运行时,一切都像魅力一样。任何人都知道如何解决这个问题?

这是设计窗口中显示的错误:

System.Reflection.Adds.UnresolvedAssemblyException
Type universe cannot resolve assembly: CrystalDecisions.CrystalReports.Engine, Version=13.0.2000.0, Culture=neutral, PublicKeyToken=692fbea5521e1304

作为一个例子,现在我正在尝试使用用户控件,所以在我看到它之前必须clsoe并重新打开窗口25-30次变得非常令人沮丧,并且当它好的时候我ouch 1标签和爆炸它再次消失。 “重装设计师”链接的工作原理为1/10,但只有在更改1个标签后,修复该方式肯定会失败。

这里是用户控制代码(我知道人们会询问错误发生的代码,但它会发生在任何地方,所以我只是给它一个,因为它是一个新的,我只是想构建)

<UserControl x:Class="CustomTools.UserControl.ComponentSelection.UCSelections"
             xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
             xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
             xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
             xmlns:d="http://schemas.microsoft.com/expression/blend/2008">
        <DataGrid >
            <StackPanel Orientation="Horizontal">
           <Image Name="imgSuccesOrFail" Height="32" Width="32" Margin="10,0,10,0" >

        </Image>
                <StackPanel>
                    <StackPanel Orientation="Horizontal">
                        <Label Content="Component Name : "/>
                        <Label Content="comp1"/>
                    </StackPanel>
                    <StackPanel Orientation="Horizontal">
                        <Label Content="Component Name : "/>
                        <Label Content="comp1"/>
                    </StackPanel>
                </StackPanel>
            </StackPanel>
    </DataGrid>
</UserControl>

首先打击我的是,我不使用水晶报告的任何视觉控制,这个控件也没有任何关系。

这是CS作为证据:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;
using System.Drawing;


namespace CustomTools.UserControl.ComponentSelection
{
    /// <summary>
    /// Interaction logic for UCSelections.xaml
    /// </summary>
    public partial class UCSelections : System.Windows.Controls.UserControl
    {
        public UCSelections()
        {
            InitializeComponent();
        }
    }
}

我已经尝试将.net 4切换到.net 4客户端配置文件我已经看到了关于这可能是它的帖子但是他们的问题与我的问题完全不同。

我尝试编译:32位,64位和任何CPU编译。重建解决方案。

任何想法如何解决这个问题。和BTW我不是唯一一个有这个问题的人,这里有几个其他开发人员有同样的问题,但没有必要相同的文件。一些用户控制工作100%的时间,他们不使用水晶。我知道水晶被使用但是有很多控制让我知道在哪里。我还没有看到项目的整个范围。

编辑#1: 我还要补充一点,这个问题在早上开始工作的时候非常罕见,开始时我会更频繁地编译和运行不同的项目。但是重新启动计算机并没有帮助,所以似乎更巧合的是,这种情况从未在早上发生过。

编辑#2: 我打开并关闭项目几次,以显示错误,我设法得到它。现在我得到以下内容:

  

抛出了“MS.Internal.Validate + ValidationFailure”类型的异常。   在   MS.Internal.Design.DocumentModel.DocumentTreeManagers.DocumentNodeInfo.Insert(DocumentNode   item,DocumentNode之后,DocumentNodeDictionary表)at   MS.Internal.Design.DocumentModel.DocumentTreeManagers.ItemUpdater.ApplyDelta(INodeHost   nodeHost,DeltaItemCollection delta,ModifiableDocumentTree root,   DocumentNodeDictionary oldTable,Boolean updateTable,   DocumentNodeDictionary deletedItems,Comparison 1 compare) at Microsoft.Windows.Design.DocumentModel.Trees.DocumentTreeManager.ApplyDelta(Delta delta, Comparison 1 compare)at   Microsoft.Windows.Design.Platform.ViewProducerBase.ApplyUpdate(三角洲   三角洲   Microsoft.Windows.Design.Platform.ViewProducerBase.IncrementalRebuild(DocumentTreeManager   树,伤害)   Microsoft.Windows.Design.Platform.ViewProducerBase.UpdateView(DocumentTreeManager   树,伤害)   Microsoft.Windows.Design.DocumentModel.ViewProducer.UpdateView(UpdateDamageArguments   参数)

这与上面描述的XAML / CS相同。从昨天起就没有触及它,因为这个错误使我非常生气,我决定去做一些更有用的事情,而不是浪费时间。

编辑#3:

尝试了@ N4TKD解决方案 我只安装了一个水晶报告,所以我删除了所有对水晶报告的引用,在我的项目中删除了大量的控件,但仍然存在问题。 然后我重新检查出项目并验证所有项目组装。他们都指向Crystal Reports for .NET Framework 4. 13.0.2000.0

任何人都有同样的问题吗?

自从上次编辑以来,我没有收到错误MS.Internal.Validate+ValidationFailure,因为它只是水晶报告。

同样摆脱用户控件中的<image></image>可以减少几乎抛出的错误

2 个答案:

答案 0 :(得分:2)

尝试打开Visual Studio的另一个实例,将调试器附加到“XdescProc”,并在抛出任何异常时将调试器设置为中断。

该流程负责呈现设计时间视图。例外(或不确定性)通常可以提供一些正在发生的事情的提示。

答案 1 :(得分:0)

我们最终为VS2010重新安装了旧版本的水晶报告,错误几乎不再显示。我在过去的一周内得到了2到3次,这是每天100-200的巨大改进