none
WPF:UserControl作成時の参照問題 RRS feed

  • 質問

  • Visual C# 2008 Express Editionの不具合について質問です。
    環境:WindoesXP SP2

    上記環境でWPFのUserControlを作成中にデザイナーで表示しようとした所、プレビュー画面に表示はされるのですが、エラーメッセージが表示されインテリセンスが使用できません。

    エラーメッセージ
    「n:TestUC' が見つかりませんでした。アセンブリ参照が失われていないか、また、すべてのアセンブリがビルドされているかを確認してください。」(TestUCは今回作成しているUserControlです。)

    F5にてアプリケーションを実行すると何事もなく起動できます。

    このエラーについて調べた所、以下の条件が浮かび上がりました。
    1. 外部のプロジェクトをインポート
    2. そのプロジェクト内に在るものを参照する
    3. デザイナーで表示されるが、エラーとなる。
    (今回は外部のプロジェクトにあるenumを参照しています)

    ビルド自体は通っておりエラーなどはありません。
    プロジェクトの依存関係やビルドの順番なども見直してみましたが、駄目なようです。
    解決方法がありましたら、教えてください。

    問題が再現するプロジェクトを作成しましたので、下記URLからご覧いただければ幸いです。

    2009年8月10日 15:21

すべての返信

  • anemotoさん、こんにちは。
    フォーラムオペレーターの高橋春樹です。
    MSDNフォーラムのご利用、有難うございます。

    今回、Visual C# 2008 Express Editionの不具合について、
    投稿して頂いたと思うのですが、皆様からの回答が得られないようでしたら、
    Connectサイトの方に、フィードバックされてみてはどうでしょうか?

    Microsoft Visual Studio 製品フィードバック
    http://www.microsoft.com/japan/msdn/vstudio/feedback/


    もし、同じような問題・対処法など、ご存知の方がいらっしゃいましたら、
    ご投稿、よろしくお願いします。


    マイクロソフト株式会社 フォーラム オペレータ 高橋春樹
    2009年8月18日 9:11
  • 高橋 春樹 様

    お返事有難うございます。

    現在有効な回答は無いようですので、後ほどフィードバックセンターに送ってみたいと思います。

    ご提案、有難うございました。

    2009年8月19日 15:39
  • ↓こうするとインテリセンスが使えました。

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;

    using System.ComponentModel;                        //これを追加

    namespace KML.WPF.UserControls {
        [EditorBrowsable(EditorBrowsableState.Always)]  //これを追加
        public enum AB {
            A,
            B,
        }
    }

    2009年8月20日 6:04
  • 私もanemotoさんと同じ問題が発生しました。

    anningoさんの回答を参考にして、自分のコードにusing System.ComponentModel;を追加した所解決しました。

    このusing System.ComponentModelは、INorifyPropertyChangedを使う時などでエンティティクラスに追加したりして使ってました。

    自分自身は、エンティティクラスをビハインドコードとは別に作成していましたので、ビハインドコードに直接このusing System.ComponentModel を追加したのは初めてでしたので、全然この答えに辿りつきませんでした。

    anningoさんありがとうございました。


    03188
    2010年12月28日 4:17
  • ちょっと 03188 さんにお尋ねします。

    using System.ComponentModel;

    totojo さんが書かれたように EditorBrowsableAttribute を使用する場合に必要になりますが、
    03188 さんも今回 EditorBrowsableAttribute を使われたのでしょうか?

    単に using を追加されただけですと、もしかして using の追加というソースコードの変更によってリビルドが発生した、ということではないでしょうか?
    たとえばその using を削除すると問題が再発するのでしょうか?

    (それと anningo さんの環境でも、同じ問題が再現できたのでしょうか?
     普通は可視性で表示有無が決まりそうに思いますので、Always の指定にどんな意味があるのだろうと思いました。)

    2010年12月28日 5:06
  • ご連絡が遅くなり、大変失礼いたしました。

    しばらく、MSDNを覗いていなかった為、気が付きませんでした・・・

    そして、環境を確認してから(明確には覚えていないので・・・)お答えしたかったのですが、

    時間が経ち過ぎてどの環境で操作していたのか分からなくなりました。この様な理由で以下の回答は不十分もしくは、的外れであるかもしれません。

    >単に using を追加されただけですと、もしかして using の追加というソースコードの変更によってリビルドが発生した、ということではないでしょうか?
    >たとえばその using を削除すると問題が再発するのでしょうか?

    usingを削除すると問題は再発していたと記憶しています。

    >totojo さんが書かれたように EditorBrowsableAttribute を使用する場合に必要になりますが、
    >03188 さんも今回 EditorBrowsableAttribute を使われたのでしょうか?

    使っていなかった様に思います。ただ、using System.ComponentModel;は私は良く使っています。

    以上が、現在の私からの回答となります。






     


    03188
    2011年5月18日 1:43