私は PoshConsole のソースコードをダウンロードし、ソリューションを構築しようとしていました。私は最初に2つの問題を抱えていました-
system.Interactivity.dllを解決できませんでした。 Blend 4 SDKをインストールし、その問題を修正しました。
不明なビルドエラー-System.Windowsへの依存関係を解決できません
現在、プロジェクトをビルドしようとすると、ソリューションの2つのプロジェクトで次のエラーが発生し、グーグルで検索しても解決策を見つけることができません。
アセンブリ 'System.Windows、Version = 2.0.5.0、Culture = neutral、PublicKeyToken = 7cec85d7bea7798e'への依存関係を解決できません。プリロードされていないためです。 ReflectionOnly APIを使用する場合、依存アセンブリは、ReflectionOnlyAssemblyResolveイベントを通じてオンデマンドでプリロードまたはロードする必要があります。
別の(GAC以外のカスタム)アセンブリに対してこのエラーメッセージが表示されました。
私の場合、状況は次のとおりです。
YはXを参照し、ZはYを参照しました。
エラーメッセージは、Bが参照されているZのデータテンプレートの行を指しており、Xをロードできないことを示していました。
解決策は、ZにもXを参照させることでした。コンパイラは、必要なアセンブリを独自にロードするための推移的な参照を解決できません。
このエラーは通常、WPFプロジェクト内にSilverlightアセンブリへの参照を追加したことを意味します-2つは共存できません。
O。R. Mapper の回答に加えて、コンパイラエラーによって示されるアセンブリへの参照を追加することを提案する情報を追加したいと思います。
WPFプロジェクトでの作業中に同じ問題が発生しました。彼の回答で示されたX、Y、Z関係を考えると、Xの型を持つプロパティをYのDataTemplate
でDataType
にバインドすると問題が発生します。したがって、これはすべての場合に発生するわけではありませんZによって参照されるアセンブリではなく、ビュー内で特定のタイプのみを公開するアセンブリ。私の場合、SelectedItem
のComboBox
をXで宣言されたenum
プロパティにバインドしていました。
これらの型をオブジェクトにリファクタリングすることができ、特にMVVMを使用する場合に、参照を本当に維持したい場合は問題がなくなります。さらに、モデルタイプをViewModelタイプに適切にラップすると、Visual Studioが必要なアセンブリを理解するのに役立つ明示的なコードが生成されるため、問題は自然に解消します。
お役に立てれば。
[projectName] .csprojファイルで、解決できない依存関係を特定して削除してから、後で再度追加できます。
他の人の役に立つことを願っています
誰かが同じ問題に遭遇した場合に備えて、私はこの古い質問を投げて答えます。
私は最近、レガシープログラムに取り組んでいて、このエラーが発生しました。解決策はすぐにはわかりませんでした。
問題
参照されているNuGetパッケージの1つは、一連の内部ライブラリ用に作成され、内部のNuGetリポジトリに保存されています。
すべてのNuGet参照がプロジェクトファイルにあり、ライブラリに直接アクセスするため、アプリケーションはVS2013で問題なくコンパイルされました。
これらの参照が(HintPathをサポートしない)に変更されたとき、これらのNuGetパッケージの多くはnuspecに従って作成されませんでした。 libフォルダーがありませんでした。
パッケージは仕様に従って再作成されましたが、一部のパッケージには古いSilverlightライブラリが含まれていました。これらのライブラリがエラーの原因でした。
ソリューション
nuspecに続いて、libフォルダーにサブフォルダーが作成されました:net45およびsl4。 .NET4.5およびSilverlight4.0。
パッケージが新しいパッケージに置き換えられたとき、ビルドは正常に機能しました。プロジェクトファイルのバージョンに関係なく。
TL; DR
古いnupkg構造:
Package.1.0.0.nupkg
- Library.Net40.dll
- Library.Sl4.dll
新しいnupkg構造:
Package.1.0.1.nupkg
- lib
- net45
- Library.dll
- sl4.0
- Library.dll