1

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

私は C# .Net 4.0 と Visual Studio 2010 Professional を使用しています。フォームにいくつかのボタン、リッチテキスト ボックス、および分割コンテナがあります。コードはそれほど多くなく、現時点ではあまり機能していません。ソリューションには 2 つのプロジェクトがあります。MyProject と MySupportProject と呼びます。フォームは MyProject プロジェクトにあります。

プログラムを実行しようとすると、時々 2 つのエラーが発生します。

'MySupportProject.Properties.Resources' is inaccessible due to its protection level
'MySupportProject.Properties.Resources' does not contain a definition for String1'

そこで、デザイナーを調べてみると、なぜか次のように入力され続けています。

this.rtbStatus.Text = global::MySupportProject.Properties.Resources.String1;

そして、私には理由がわかりません。削除するかコメントアウトすると、その行が生成され続けます。フォームの RTB (RichTextBox) には、テキストが関連付けられていません。

ソリューションのプロパティでは、MySupportProject は MyProject の依存関係としてリストされていますが、この特定の非表示文字列を使用してこの特定の RichTextBox で何をしようとしているのか、一生わかりません。MySupportProject のリソースを少し調べたところ、定義が見つかりました。

    /// <summary>
    ///   Looks up a localized string similar to .
    /// </summary>
    internal static string String1 {
        get {
            return ResourceManager.GetString("String1", resourceCulture);
        }
    }

上記の定義は何らかのツールによって生成されたようですが、どこから来たのかはよくわかりません。誰かが私より前にこのプロジェクトに取り組んでいたので、彼らはそれを入れることができたかもしれませんが、私はフォームをゼロから始めたので、私は接続を確立していません. 誰かが同様の問題を抱えたことはありますか?そうでない場合、この厄介な時折のビルドの失敗を止めるために他に何かすべきことはありますか? ご助力いただきありがとうございます!

4

1 に答える 1

1

この背後にある理由は正確にはわかりませんが、行を次のように置き換えることができます。

this.rtbStatus.Text = "";

また:

this.rtbStatus.Text = null;

また、その文字列リソースを削除してみてください。できない場合は、次のようにします。

  1. リソースファイルに他のリソースが格納されていないか確認してください。
  2. そうである場合は、他のすべてのリソースを新しいリソース ファイルにコピーし、古いファイルを削除します。
  3. そうでない場合は、古いリソース ファイル (.resx) を削除して、新しいリソース ファイルを作成します。
于 2012-10-03T18:49:10.657 に答える