値を変換するクラスをXAMLに含めようとしています。ただし、コンパイルすると次のエラーが表示されます。
未定義のCLR名前空間。 'clr-namespace' URIは、アセンブリに含まれていない名前空間 'View.Summary.Converters'を参照します。(View\View)
そして、エラーが発生しているXAML:
xmlns:c="clr-namespace:View.Summary.Converters"
また、ここに私の変換クラス/名前空間の概要があります:
namespace View.Summary.Converters
{
class CollapsedIfNegative : IValueConverter { }
class VisibleIfNegative : IValueConverter { }
class ErrorCodeToString : IValueConverter { }
}
私が取り組んでいるプロジェクトは機密性が高いため、コードの根性を取り除く必要がありました。
私は何が間違っていたかを見つけました。 Visual Studioはこれを最初のエラーとして示しましたが、実際には、コンバーターの組み立てを妨げるコーディングに関する他のエラーがありました。したがって、VSがアセンブリを見つけに行ったとき、そこにはありませんでした。
ソリューションを再構築すると、エラーはなくなります。
ターゲットをx64からx86に変更することでこれを解決しました。どうやらVisual Studioは32ビットプロセスであり、64ビットアセンブリを読み込むことができません。また、アセンブリがx64プラットフォームを対象としており、カスタムコントロールを追加すると、Visual Studioを読み込むことができず、このメッセージがスローされます。
外部プロジェクトを参照する場合、プロジェクトの参照に表示されるアセンブリを指定する必要があります。
xmlns:mdls="clr-namespace:MyProject.Models;Assembly=MyProject.Models"
vs2008デザイナーの問題
これを行う:
これでエラーは発生しなくなりました。
問題を再現できました:
.NET Framework 4.0で簡単なWFを作成しました。xamlファイルの名前を変更しました。xamlファイルの名前を変更する一環として、WorkflowInvokerオブジェクトでInvokeを呼び出すときにワークフローランタイム名を手動で変更する必要があります。プロジェクトをビルドしましたが、「「clr-namespace」URIはアセンブリに含まれていないネームスペース「System」を参照しています」というエラーが表示されました。
修正方法:
プロジェクトのプロパティページを開きます。何らかの理由で、ターゲットフレームワークは.NET framework 4.0から4.0クライアントバージョンに切り替えられました。そこで、.NET 4.0を選択し、プロジェクトを再構築しました。エラーはもうありません。
ビルド構成に、現在の(アクティブな)ビルド構成でビルドするプロジェクトが選択されていることを確認します。
ビルドアーキテクチャ(x86からx64)をいじった後にこの問題が発生し、メインのwpfプロジェクトの選択が解除されました。
C#WPFプロジェクトでこの問題に遭遇しました。 XAMLで問題となっている関連するネームスペースでさえ、プロジェクト中にあらゆる種類のエラーで最後に試行してプロジェクトを閉じたときに生成されるようです。
これに対する解決策は、すべての.CSファイルを修正(または問題のあるXAML/CSファイルを除外)して、実行中のバージョンを取得し、再構築して実行することです。
デザイナーが実行していると思われるデバッグバージョンに問題があると考えるには、3時間近くかかりました。これが多くの場合、人々がリビルドプロジェクトでこれを解決した理由ですが、プロジェクトに既存のコードエラーがある場合、リビルドは完了せず、デザイナーがサポートするバージョンを置き換えないため、問題はそれ自体を解決しません。
これが役立つことを願っています!
Visual Studioは、奇数のアセンブリファイルパスに戻り続けます。参照している実際の参照ファイルを削除してから、プロジェクトに追加するだけです
同じエラーが発生しました。しかし、どうやら、それは私が構築しようとしていたソリューションのパスのためだけでした。パス/ディレクトリ/フォルダ名にスペースが含まれています。