VS2012 を使用して、VB.NET WPF アプリケーションに取り組んでいます。WPF を学習するために使用しているシンプルな MusicPlayer チュートリアル アプリがあります。チュートリアルの C# バージョンを段階的に VB.NET に変換しています。
アプリには 2 つのクラスがあり、どちらも同じ名前空間の下にあります。XAML で名前空間を参照することはできますが、XAML でクラス オブジェクトを参照しようとするとエラーが発生し、コンパイルできません。
奇妙なことに、IntelliSense は、xmlns:c= タグを介して名前空間を参照する場合と、クラス オブジェクトを入力する場合の両方で正常に機能します<c:
が、オブジェクトに下線が引かれ、デザイナーでビルドまたは操作しようとするとエラーが生成されます。
.vb クラス ファイルは、\Controls というフォルダーにあります。メイン プロジェクトのルート名前空間は意図的に空白のままになっています。クラスは次のようにコード化されています...
Namespace MusicPlayer.Controls
Public Class UpdatingMediaElement
.... code here
End Public
End Namespace
xamlは次のようになります
(<Window >
タグで定義された名前空間
xmlns:c="clr-namespace:MusicPlayer.Controls"
( で定義されたオブジェクト<Grid>
)
<c:UpdatingMediaElement Name="MyMediaElement" />
(エラーが表示されます) 名前「UpdatingMediaElement」は名前空間「clr-namespace:MusicPlayer.Controls」に存在しません。
何が問題なのか、またはそれをどのように修正するのかが分かりませんか?
ベストアンサー1
WPF コードを記述しているときに、VS から「名前 ABCDE は名前空間 clr-namespace:ABC に存在しません」というメッセージが表示されます。ただし、プロジェクトを完全に正常にビルドすることはできますが、UI 設計を確認できない (または単にコードをクリーンアップしたい) ため、少し不便を感じるだけです。
次のことを試してみてください:
VSで、ソリューションを右クリック -> プロパティ -> 構成プロパティ
新しいダイアログが開きます。プロジェクト構成をデバッグからリリースに、またはその逆に変更してみてください。
その後、ソリューションを再構築します。これで問題が解決するはずです。