web-dev-qa-db-ja.com

エラー:2つの出力ファイル名が同じ出力パスに解決されました: "obj \ Debug \ Project1.Form1.resources"

エラーが発生します:

Two output file names resolved to the same output path: "obj\Debug\Project1.Form1.resources"

このエラーは、私が作成したWindowsフォームアプリケーションを実行しようとしたときに発生します。一部の検索では、これは2つの.resxファイルの発生が原因で発生することがわかりました。アプリケーションに2つの.resxファイルがあります。また、アプリケーションには2つのフォームがあります。最初のフォームをコピーし、名前を変更してコピーを変更することにより、2番目のフォームを作成しました。 2つの.resxファイルはform1.resxとform2.resxです。このエラーを削除するにはどうすればよいですか?

8
Foreever

なぜそうするのかわかりませんが、これらの手順を使用してフォームを適切にコピーできます。推奨されません。ユーザー制御を継承または使用することをお勧めします。しかし、あなたがしなければならない場合:

  1. 2番目のフォームを削除します。
  2. 実際にフォームを作成して再作成してください
  3. InitializeComponentメソッドをform1.designerから新しいフォームにコピーします
  4. また、InitializeComponentの下の部分をコピーします。
  5. form1のコードを新しいフォームにコピーし、コンストラクターを修正してください
  6. コピー&ペーストを使用してフォーム全体をコピーしないでください

[〜#〜]編集[〜#〜]

誰かがページ変更ボタンを押すと、次のことができます。

  private void button1_Click(object sender, EventArgs e)
  {
     Form2 frm = new Form2(NextPage);
     frm.Show();
     this.Hide();
  }

これは非常に基本的な構文です。新しいフォームを何度も作成しないように、すべてのフォームを保持するマスターフォームが必要になる場合があります。

デザインはあなた次第です。この例では、フォームを開いたり閉じたりする方法の基本を説明します。

7

このエラーは、Windows10を使用していて、SR-Cyrl-CS、SR-Latn-CSカルチャのローカリゼーションリソースがある場合にも発生する可能性があります。 Windows10はそれらをサポートしなくなりました。

1
Eugene Maksimov

Resxファイルが必要ない場合は、それらを削除するだけで、この問題は解消されます。

0
Dave Cousineau

私の場合、.resxファイルのコピーが2つ表示されていませんでした。 Visual Studio 2010を再起動しただけで、問題は解決しました。

0
Vikram

FormSettingsという2番目のフォームをプロジェクトに2回追加しましたが、後で説明されているエラーが発生しました。これを修正するために、プロジェクトからFormSettingsを削除しました。その後、FormSettingsという名前のすべてのファイルの名前をFormSettingsOldに変更しました。アプリケーションをビルドしたとき、FormSettingsに関するエラーが発生していました。 FormSettingsへの参照を含むプロジェクト内のすべてのファイルを検索しました。 ProjectName.csprojがFormSettingsを参照していることがわかり、FormSettingsに関連する重複するXMLエントリを削除しました。

<Compile Include="FormSettings.Designer.cs">
<DependentUpon>FormSettings.cs</DependentUpon>
</Compile>
<Compile Include="FormSettings.Designer.cs">
  <DependentUpon>FormSettings.cs</DependentUpon>
</Compile>
0
Nick_F