9

我收到错误:

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

尝试运行我创建的 Windows 窗体应用程序时出现此错误。一些搜索告诉我,这是由于出现了两个 .resx 文件。我的应用程序中有两个 .resx 文件。我的申请中还有两种表格。我通过复制第一个表单并重命名和修改副本来创建第二个表单。这两个 .resx 文件是 form1.resx 和 form2.resx。如何消除此错误?

4

7 回答 7

7

虽然我不知道您为什么要这样做,但您可以使用这些说明正确复制表格。不推荐。最好继承或使用用户控制。但如果你必须:

  1. 删除第二个表格。
  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();
  }

现在这是非常基本的语法。您可能希望拥有一个包含所有表单的主表单,这样您就不会一遍又一遍地创建新表单。

设计由您决定。这个例子将为您提供有关如何打开和关闭表单的基础知识。

于 2013-09-12T08:24:36.653 回答
1

如果您不需要 resx 文件,您可以删除它们,这个问题就会消失。

于 2014-04-27T18:18:47.440 回答
1

如果您使用 Windows10 并且您有 CR-Cyrl-CS、CR-Latn-CS 文化的本地化资源,也可能会出现此错误。Windows10 不再支持它们。

于 2016-06-08T11:52:32.943 回答
1

我在制作表单应用程序时遇到了这个问题。当我更改表单名称时,由于同样的错误而出现了编译问题。在 Visual Studio 中,我看到在表单的子选项卡中创建了一个具有 2 个不同名称的 .resx 文件,我在解决方案资源管理器部分更改了它的名称。我删除了 oldname.resx 并修复了它。

于 2021-12-09T22:12:02.430 回答
0

我在我的项目中添加了两次名为 FormSettings 的第二个表单,后来我收到了所描述的错误。为了修复它,我从项目中删除了 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>
于 2015-04-06T09:53:10.700 回答
0

就我而言,它没有向我显示 .resx 文件的 2 个副本。我只是重新启动了 Visual Studio 2010,问题就消失了。

于 2014-05-01T19:26:27.760 回答
-1

复制表单时,源表单的类名似乎被重命名为新表单的名称,至少在您重命名新表单的情况下。我恢复了目标表单的原始名称(类文件、构造函数和设计器文件)。还要记住要检查原始类名的任何用法,因为这里也需要更改。这解决了问题。(视觉工作室 2010)

于 2015-05-18T11:38:50.310 回答