web-dev-qa-db-ja.com

タイプリソースが名前空間エラーに存在しません

別の問題が発生しました。プロジェクトはほぼ終了しましたが、プロジェクトの名前空間を変更する必要があるように感じました。しかし、リファクタリングを使用する代わりに->名前変更、名前空間を選択し、編集->検索して置換し、ソリューション全体を別の名前空間に置き換えました(ソリューション内のすべての場所で、たとえば名前空間やテキスト "name1"が存在します) 「name2」に変更されました)。

しかし、今では同じことを言っている約16のエラーが発生します。「タイプまたは名前空間「リソース」は名前空間name1に存在しません」.

     this.centerPanel.BackgroundImage = global::login_DragDrop.Properties.Resources.oeftest;

たとえば、このコード行(主にdesigner.cs内)では、リソースは赤で色付けされていますか?

これを修正する方法に関するヒントはありますか?

19
user3644837

リソースファイルでもコード生成を実行して、正しい名前空間をそこに取得する必要があります。

次の手順を実行します:

  • プロジェクトのプロパティを開きます(右クリック>プロパティ)
    • アプリケーションセクションをクリックします
    • お好みのデフォルト名前空間を入力してください
    • プロパティを閉じて保存します
  • ソリューションエクスプローラーで、Resouces.resxファイル([プロパティ]の下)に移動します
    • Resources.resxファイルを右クリックします
    • [カスタムツールの実行]を選択します(または alt+L

これにより、リソースファイルのコード生成が再度実行されます。生成されたコードにより、リソース文字列の値への厳密に型指定されたアクセスが可能になります。

34
rene

カスタムツールの実行が機能しませんでした。しかし、リソースを追加した場合、問題自体が修正されたことがわかりました。

次の手順を実行します:

  • プロジェクトのプロパティを開きます(右クリック>プロパティ)
  • [リソース]セクションをクリックします
  • [リソースの追加]ドロップダウンで、[既存のファイルの追加]を選択します
  • リソースファイルを選択します。 (既存の画像ファイルを選択しました)
    • この時点で私のエラーは消えました。
  • 追加したリソースを選択します
  • [リソースの削除]をクリックします(クリーンアップするため)。
  • プロパティを閉じて保存します

遅い(非常に)応答は知っていますが、そこに行きます。

5
mohnston

私の場合、どの回答も機能しなかったため、自分の回答で投稿することにしました。

これが私がしたことです:

  • まったく同じ名前空間(Y)に同じ名前(X)のクラスを作成します。
  • "名前空間 'Y'には既に 'X'の定義が含まれています。"エラーが表示されます。
  • クラスXを削除します。

クラスを削除した後、名前Xのリソースが名前空間に表示されたままでした。

1
Petr Kolínek

私の場合、Resource.Designer.csファイルがどういうわけかプロジェクトから除外されました...非表示のファイルを表示(すべてのファイルを表示)をクリックし、右クリックでプロジェクトに含め、修正されました。ふew.

1
Nick Kovalsky

おそらく、既存のリソースと同じ名前の別のリソースファイルを追加しようとしました。これを修正するには、Resources.resxファイル内の対応する行を削除するだけです。たとえば、同じ「データ名」を持つ2つの行が表示されます。

  <data name="button" type="System.Resources.ResXFileRef, System.Windows.Forms">
    <value>..\Resources\button.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
  </data>
0
kino