17

dll参照を追加する際に奇妙な問題が発生しました。WPFアプリケーションがあり、WPF MDIライブラリを使用しようとしています:http ://wpfmdi.codeplex.com/

手順(非常にあいまいです)に記載されているように、VS2012の参照を右クリックし、をクリックしAdd reference..、クリックしてBrowse..、ダウンロードしたdllを追加しました。

次に、ウィンドウのXAMLに次の行を追加しましたxmlns:mdi="clr-namespace:WPF.MDI;assembly=WPF.MDI"。手順に記載されているとおりです。

ただし、XAMLにを追加しようとすると<mdi:MdiContainer>、次のエラーメッセージが表示されます。

The type 'mdi:MdiContainer' was not found. Verify that you are not missing an assembly reference and that all referenced assemblies have been built.

The name "MdiContainer" does not exist in the namespace "clr-namespace:WPF.MDI;assembly=WPF.MDI".

これは私のXAMLです:

<Window x:Class="QueryBuilder.Table"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:mdi="clr-namespace:WPF.MDI;assembly=WPF.MDI"
        Height="300" Width="300" WindowStyle="ToolWindow" ResizeMode="NoResize" ShowInTaskbar="False">
</Window>

この問題は一日中私を苛立たせてきました。私は想像できるほとんどすべてを試しました。注目に値するのは、ライブラリのサイトからサンプルアプリケーションをダウンロードしたので、問題なく実行できることです。これに加えて、これをプロジェクトのxaml.csクラスに追加しましたWPF.MDI.MdiContainer d = new WPF.MDI.MdiContainer();。問題なくコンパイルされます。

また、私の最初の問題はここで尋ねられましたが、どの提案も機能しなかったことにも注意してください。ただし、上記の段落が原因で問題が変更されました。これは、コードがコードビハインドで正常にコンパイルされているが、XAMLファイルでは正常にコンパイルされていないことを示しているようです。

編集:以下に示すように、アセンブリ参照のコードを参照できることも追加したいと思います。

ここに画像の説明を入力してください

4

3 に答える 3

10

私はついに自分で問題を解決しました-誰かが同じ問題を抱えている場合に備えて、この答えをここに残しておきます。ソリューション自体をアセンブリの参照パスに追加すると、問題が解決します。これが文書化されていないのは残念です...

編集:明確にするために、私がしたことは、dllではなくソリューションを追加することでした。つまり、MDIソリューションとそのすべてのクラスを追加しました。これは当然、ソースコードが利用可能なDLLにも当てはまります。

于 2012-10-14T19:21:01.267 に答える
8

すべてを試した後もVisualStudioが文句を言ったり下線を引いたりする場合は、タスクマネージャーを使用してXDesProc.exeプロセスを終了してから、ソリューションを再構築してください。

于 2015-04-29T13:29:55.337 に答える
1

http://wpfmdi.codeplex.com/からslnファイルを取得しました。そのプロジェクトをビルドし、binから新しい.dllを使用し、それを使用すると、問題なく動作しました。

于 2015-10-14T07:40:25.857 に答える