【问题标题】:Error : Two output file names resolved to the same output path: "obj\Debug\Project1.Form1.resources"错误:两个输出文件名解析为相同的输出路径:“obj\Debug\Project1.Form1.resources”
【发布时间】:2013-09-16 11:37:07
【问题描述】:

我收到了错误:

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

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

【问题讨论】:

  • 在重命名第二个表单的类时,是否使用了Visual Studio的自动更新功能?如果是这样,它可能也改变了第一种形式的类名。
  • @Ahmad 我不记得这个问题的细节了。

标签: c# winforms visual-studio visual-studio-2012


【解决方案1】:

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

【讨论】:

    【解决方案2】:

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

    【讨论】:

      【解决方案3】:

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

      【讨论】:

        【解决方案4】:

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

        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();
          }
        

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

        设计由您决定。此示例将向您介绍如何打开和关闭表单。

        【讨论】:

        • 我正在尝试创建多页填写表单,每个表单中的每个页面。你有什么建议吗?我刚刚开始设计。谢谢你的回答。它帮助了我,我会接受这个答案。
        • @Foreever 是的,我有一些建议,但首先告诉我什么是“页面”?是文字吗?它是一个对象吗?一般来说,您可以采用一个表单并创建它的多个实例,每个实例都有不同的“页面”作为表单的成员。然后显示您在此表单中获得的“页面”
        • 我所说的页面是指 PDF 或 Word 文件中的页面。在第 1 页中填充了一些文本框后,单击下一步按钮可以转到下一页,其中包含另一组要填充的文本框。您能简要告诉我如何创建同一个表单的多个实例吗?
        • 既然实例是以编程方式创建的,我不应该也以编程方式设计与该实例对应的页面吗?
        • @Foreever 对于您想要的,您可以在一个表单中完成所有操作并更改 textbox1.Text 属性。我将编辑答案以向您展示如何显示和隐藏页面
        【解决方案5】:

        我在我的项目中添加了两次名为 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>
        

        【讨论】:

          【解决方案6】:

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

          【讨论】:

            【解决方案7】:

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

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 2015-07-31
              • 1970-01-01
              • 1970-01-01
              • 2019-01-26
              • 2022-09-29
              • 2012-08-04
              • 2021-11-25
              • 2016-07-27
              相关资源
              最近更新 更多