2

ウィンドウがあり、その中にあるのは TextBlock だけです。何かを変更するたびにデザイナーをクラッシュさせるばかげたデザイナーの例外が発生しています。このエラーの原因を見つけようとして、すべてを削除し始めました。そして今、私には何も残っていませんが、デザイナーは例外をスローし続けています.

<Window x:Class="Company.Product.Views.About"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    Height="397"
    Width="658">
<TextBlock>Test</TextBlock>
</Window>

コードビハインド:

/// <summary>
    /// Interaction logic for Window1.xaml
    /// </summary>
    public partial class About : Window
    {
        public About()
        {
            InitializeComponent();
        }
    }

「ここをクリックしてデザイナーを再読み込み」するとウィンドウが表示されますが、TextBlock のテキストを変更すると例外が発生します

例外

System.ArgumentNullException
Value cannot be null.
   at System.RuntimeType.MakeGenericType(Type[] instantiation)
   at Microsoft.VisualStudio.Shell.Design.VsTargetFrameworkUtil.GetRuntimeType(Type type)
   at Microsoft.VisualStudio.Shell.Design.VsTargetFrameworkType.TryGetRuntimeType()
   at Microsoft.VisualStudio.Shell.Design.VsTargetFrameworkUtil.EnsureRuntimeType(Type type)
   at Microsoft.VisualStudio.Shell.Design.VsTargetFrameworkProvider.GetRuntimeType(Type reflectionType)
   at MS.Internal.Package.VSIsolationProviderService.RemoteReferenceProxy.VsReflectionResolver.GetRuntimeType(Type reflectionType)
   at Microsoft.Windows.Design.Metadata.ReflectionMetadataContext.CachingReflectionResolver.GetRuntimeType(Type reflectionType)
   at Microsoft.Windows.Design.Metadata.ReflectionMetadataContext.Microsoft.Windows.Design.Metadata.IReflectionResolver.GetRuntimeType(Type reflectionType)
   at MS.Internal.Metadata.ClrType.get_RuntimeMember()
   at MS.Internal.Metadata.ClrMember`1.Microsoft.Windows.Design.Metadata.Reflection.IReflectionMember.get_MemberInfo()
   at MS.Internal.Metadata.ClrType.Equals(Object obj)
   at System.Collections.Generic.ObjectEqualityComparer`1.Equals(T x, T y)
   at System.Collections.Generic.Dictionary`2.FindEntry(TKey key)
   at Microsoft.Windows.Design.Metadata.Xaml.XamlExtensionImplementations.<>c__DisplayClass5.<FindAttachableProperties>b__4(ITypeMetadata walkType)
   at MS.Internal.Design.Metadata.Xaml.XamlType.<GetAllAttachableProperties>d__7.MoveNext()
   at MS.Internal.Design.Metadata.Xaml.XamlType.<FindAttachableProperties>d__0.MoveNext()
   at Microsoft.Windows.Design.Metadata.Xaml.XamlExtensionImplementations.<FindAttachableProperties>d__7.MoveNext()
   at MS.Internal.VirtualModel.VirtualModelPropertyCollection.<GetUncachedProperties>d__0.MoveNext()
   at System.Linq.Buffer`1..ctor(IEnumerable`1 source)
   at System.Linq.Enumerable.ToArray[TSource](IEnumerable`1 source)
   at MS.Internal.VirtualModel.VirtualModelPropertyCollection.GetEnumerator()
   at MS.Internal.Designer.PropertyEditing.Model.Properties.ModelPropertyMerger.<GetFirstProperties>d__0.MoveNext()
   at MS.Internal.Designer.PropertyEditing.Views.PropertyEntryReader.RedraftEntries(IPropertyViewManager viewManager, Selection selection, Boolean attachedOnly, IEventCodeBehindProxy eventCodeBehindProxy, CategoryList categoryList)
   at MS.Internal.Designer.PropertyEditing.PropertyInspector.UpdateCategories(Selection selection, Boolean attachedOnly, IEntryReader entryReader)
   at MS.Internal.Designer.PropertyEditing.PropertyInspector.RefreshPropertyList(Boolean attachedOnly)
   at MS.Internal.Designer.PropertyEditing.PropertyInspector.OnSelectionChangedIdle()
   at MS.Internal.Designer.PropertyEditing.PropertyInspector.OnSelectionChangedIdleForced(Object sender, EventArgs e)
   at System.Windows.Threading.DispatcherTimer.FireTick(Object unused)
   at System.Windows.Threading.ExceptionWrapper.InternalRealCall(Delegate callback, Object args, Int32 numArgs)
   at MS.Internal.Threading.ExceptionFilterHelper.TryCatchWhen(Object source, Delegate method, Object args, Int32 numArgs, Delegate catchHandler)

問題が何であるかをデバッグする方法がありません。率直に言って、この単純な例にはデザイナーをクラッシュさせるようなものは何もないはずだと考えると、イライラします。何か案は?

アップデート

再インストール、更新、再ロードした後、問題は一時的に解消されました。今、問題は再び戻ってきました。

実際、問題が解決したかどうかはわかりません。また、VS セーフ モード、/resetsettings、および VS フォルダー内のいくつかのキャッシュ フォルダーの削除も試しました。

Update2

ここに問題を示すスクリーンキャストがあります。すみません、解像度が縦になっています。

4

2 に答える 2

1

問題は解決したと思います。新しい実行可能プロジェクトを作成し、古いプロジェクトから新しいプロジェクトにすべてをコピーし、項目を 1 つずつ削除または追加して、そのプロジェクトの何が特別なのかを調べました。

Actipro によっていくつかのサードパーティ ライブラリを参照していることがわかりました。以前に、ライブラリをアップグレードして /lib フォルダーにコピーし、そこから参照していました。参照の 1 つが忘れられていましたが、/lib フォルダーではなく、GAC 内の古いバージョンを対象としていたと思います。基本的に、参照されている Actipro の共有ライブラリの 2 つの異なるバージョンがあったと思います。

サードパーティ ライブラリの古いビルドへの誤った参照を削除し、他のライブラリと同様に適切なバージョンに更新した後、問題は解消されました。

奇妙なことは、問題のウィンドウがそのライブラリのコンポーネントや何も使用していないことです。ライブラリ内の添付プロパティを解決しようとしていた可能性があります (スタック トレースから)。

于 2012-12-18T20:54:30.627 に答える
0

プロパティTextBlockに のコンテンツを設定してみてください:TextBlock.Text

<Window x:Class="Company.Product.Views.About"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Height="397"
Width="658">
     <TextBlock Text="Test"/>
</Window>

多分それが問題です。

于 2012-12-17T22:23:21.050 に答える