none
「データが失なわれる可能性を防ぐため、…」 RRS feed

  • 質問

  • Visual Studio 2008 C#
    での質問です。

    プログラムを作りこんでいくうちに、ソリューション・エクスプローラからデザイナの表示をクリックすると、
    「データが失なわれる可能性を防ぐため、デザイナの読み込み前に以下のエラーを解決する必要があります。」
    「ファイル内にデザインできるクラスがないため、このファイルのデザイナを表示できませんでした。ファイルの以下のクラスがデザイナで見つかりました。CRsvCalForm
    --- 基本クラス 'foo.Common.AbstructFooForm'
    を読み込めませんでした。アセンブリが参照されているか、およびすべてのプロジェクトがビルドされているかを確認してください。」
    と表示されます。

    修正したコードのフォームだけでなく、今まで手をつけていないフォームも表示できなくなりました。

    SVN から(修正前の)「CRsvCalForm.cs」「CRsvCalForm.design.cs」「CRsvCalForm.resx」をエクスポートして
    Visual Studio を立ち上げても一緒の現象です。
    SVN を直接 Visual Studio で開くと、正常に動いています。


    「データが失なわれる可能性を防ぐため、デザイナの読み込み前に以下のエラーを解決する必要があります」でぐぐって見たのですが、有効そうなページは見つかりませんでした。

    どなたか解決方法をしって見える方、ご教示いただきますようお願いします。
    2013年2月28日 4:19

回答

  • うーん。

    但し、SVN(Subversion)のディレクトリの方にあり、エキスポートした作業中のディレクトリにはありませんでした。

    csproj がないということは、そのフォームはどのように開いたのでしょうか?

    最近の Visual Studio ではプロジェクト(csproj)、ソリューション(sln)という単位で管理されています。
    プロジェクトの中にフォーム、ユーザーコントロール、クラスがまとめられていますし、それらが必要とする別のアセンブリ・プロジェクトに関する情報もプロジェクトに収められています。
    このため、プロジェクトファイルがきちんと存在しないと、フォームを正常に開くことができないはずですし、手元のフォルダーにないということは考えづらいです。

    とりあえず、言えることがあるとすれば、プロジェクトファイルはどういった役割を持っているのかを知っていくことからでしょうか。

    • 回答としてマーク aztek0611 2013年3月5日 4:10
    2013年3月4日 14:17
    モデレータ

すべての返信

  • csproj に差分があるということはありませんか?

    たまに、デザイナーが参照設定に、自分自身のプロジェクトを追加して変なことになるということもあるので、.cs/Designer.cs/.resx だけでなく、周辺についても確認してみてください。

    2013年2月28日 13:45
    モデレータ
  • ご回答ありがとうございます。

    すみません、csproj はどこに作られるファイルでしょうか?

    C# 初心者で、よくわかっていません。

    2013年3月1日 1:01
  • (ソリューションエクスプローラーではなく、Windows の)エクスプローラーでフォルダー構成を一度確認することを提案しておきます。

    SVN を利用されているとのことですが、どのように利用されているのでしょうか。
    ツールの種類問わず、csproj の存在くらいはすぐにわかりそうなものですが、どういった使い方をされているのかが気になりました。
    (SVN って、Subversion の略称ととらえていますが、合っていますか?)

    2013年3月1日 15:58
    モデレータ
  • 「スタートメニュー」→「プログラムとファイルの検索」を実行したところ、ファイル名に「csproj」を含むファイルがいくつかでてきました。

    但し、SVN(Subversion)のディレクトリの方にあり、エキスポートした作業中のディレクトリにはありませんでした。

    VisualStadio でエラーを全部潰したら、デザイナ画面も正常に表示されるようになりました。

    根本的な原因がわからなくて腑に落ちませんが、作業を進めていこうかと思います。

    ご回答ありがとうございました。

    2013年3月4日 1:19
  • うーん。

    但し、SVN(Subversion)のディレクトリの方にあり、エキスポートした作業中のディレクトリにはありませんでした。

    csproj がないということは、そのフォームはどのように開いたのでしょうか?

    最近の Visual Studio ではプロジェクト(csproj)、ソリューション(sln)という単位で管理されています。
    プロジェクトの中にフォーム、ユーザーコントロール、クラスがまとめられていますし、それらが必要とする別のアセンブリ・プロジェクトに関する情報もプロジェクトに収められています。
    このため、プロジェクトファイルがきちんと存在しないと、フォームを正常に開くことができないはずですし、手元のフォルダーにないということは考えづらいです。

    とりあえず、言えることがあるとすれば、プロジェクトファイルはどういった役割を持っているのかを知っていくことからでしょうか。

    • 回答としてマーク aztek0611 2013年3月5日 4:10
    2013年3月4日 14:17
    モデレータ
  • ご回答ありがとうございます。

    Visual Studio についてもっと勉強していきます。

    2013年3月5日 4:09