私は本当に奇妙な状況にあります。まずは、これが私の最初のCaliburn.Microプロジェクトです。Caliburn.Micro .net 4.0でエラーが発生しますが、.net 4.6.1で動作します。
プロジェクトは、Caliburn.Micro 3.1.0を使用しています。これは、.net 4.0を対象としています。問題は、4.6.1のシステムではうまく動作しますが、.net 4.0では動作しません。
利用可能なすべてのCaliburn.Microバージョンをインストールしようとしましたが、問題は残ります。私がアプリケーションをデバッグできる唯一の方法は、さまざまなThread.SleepsまたはMessageBoxを使用することでした。私は
に解決する最初のメッセージで、すべてのメッセージボックスを参照してください4.6.1搭載したマシンでは protected override object GetInstance(Type serviceType, string key)
{
MessageBox.Show(container.Catalog.Parts.ToString());
MessageBox.Show(container.Catalog.Parts.Count().ToString());
MessageBox.Show("3rd message.");
var contract = string.IsNullOrEmpty(key) ? AttributedModelServices.GetContractName(serviceType) : key;
var exports = container.GetExportedValues<object>(contract);
if (exports.Any())
return exports.First();
throw new Exception(string.Format("Could not locate any instances of contract {0}.", contract));
}
:最後に、私は、ブートストラップである上記のコードのための2つのシステム間のこの大きな違いに付属しています
System.ComponentModel.Composition.Hosting.AggregateCatalog
だけ4.0を実行しているマシン上で、私はそれがSystem.ComponentMode間の差が縫い目ので
System.ComponentModel.Composition.Hosting.ComposablePartCatalogCollection.SelectMany(catalog => catalog.Parts)
に解決された最初のメッセージを見ることができますl。Windows 7マシン上のWebからインストールされた.net 4.0からの構成と、Windows 10に付属の.net 4.0。ただし、私の開発マシンで使用するファイルとWindows 7 .net 4.0マシンで使用するファイルは、同バージョン4.0.30319.1。したがって、ファイルは同じでなければなりません。
この時点で私はとても固執しています。なぜアプリケーションは4.6.1で動作しますが、.net 4.0では次のエラーを出しますか?
クラッシュは、.NET Framework 2.x/3.xの一部であるCLR20r3によって発生しているようです。 –