33

Visual Studio C# プロジェクトのコンパイル中に、次のエラーが発生します。

The item "obj\Debug\SampleProject.Forms.MDIMain.resources" was specified more than once in the "Resources" parameter. Duplicate items are not supported by the "Resources" parameter.

しかし、私はインターネットでたくさん検索しましたが、解決策はどれもうまくいきませんでした。

フォームを削除してプロジェクトに再度追加しようとしましたが、うまくいきません。

私は1つのファイルしか持っていませんresx

VS2010を使用しています。

また、次の解決策を試しましたが、うまくいきませんでした。

  1. https://stackoverflow.com/a/7928191/2074603
  2. https://stackoverflow.com/a/10066009
4

7 に答える 7

18

私は最近この問題を抱えていました.

Visual Studio IDE を使用して既存のフォームをコピーしました (名前を付けましょうForm1)。同じプロジェクトに貼り付けました(として到着しましたCopy of Form1

次に、その新しいコピーの名前を に変更しましたForm2

しばらく時間がかかりましたが、最終的に IDE の名前が と の両方に変更されていることがわかりましForm1Copy of Form1Form2

ファイル名は正しかった...内部の実際のクラスに名前が付けられただけです。

元の名前を手動で適切なクラスに戻して出来上がりました。うまくいきました。

于 2013-06-19T21:39:10.557 に答える
4

同じエラーが発生しましたが、私の場合、この問題を次のように修正しました。

ここに画像の説明を入力

強調表示された部分の下には別のファイル some_name_not_equal_to_main.resx があり、それを削除した後、私のプログラムは正常に実行され始めました。

これがお役に立てば幸いです。

于 2013-06-22T16:53:56.873 に答える
0

フォームのコピーを作成した場合は、プロパティに移動して、コピーしたフォームの名前を変更します。

ほとんどの場合、フォームのコピーを作成するときに発生します。フォームのコピーを作成すると、新しいフォームは古いフォームと同じ名前になります。旧フォームの名前が変更されたわけではありません。

この例から:

Visual Studio IDE を使用して既存のフォームをコピーしました (これを Form1 と呼びましょう)。同じプロジェクトに貼り付けました(Form1のコピーとして届きました)。次に、「Form1のコピー」に移動します[]既に名前を変更している場合は、その名前になります]プロパティに移動して、名前をForm2(または任意のクラス名)に変更します

そしてそれはうまくいくはずです。

また、クラス名を変更すると、コード内のクラス名への参照も変更される可能性があることに注意してください。そのため、注意してください。名前を変更した後、コードを再コンパイルして、参照が変更された場合に元のクラス名 (この場合は Form1) に戻すことをお勧めします。その後、新しいクラス参照の使用を開始できます。

于 2015-03-05T02:07:58.370 に答える