两个输出文件名parsing为相同的输出
正在开发用于.NET 3.5 Framework的.NET应用程序。 最近我创build了一个名为c WorkersScreen的新窗体。 当我尝试运行该项目时,我得到这个错误:
Error 1 Two output file names resolved to the same output path: "obj\x86\Debug\DryWash.WorkersScreen.resources" DryWash
这是什么意思 ?
这可能发生在两个.resx文件指向同一个表单的情况下。 主要发生在重命名表格(其他原因可能适用,我不完全确定)
如果你的特定的表单文件如下所示:
Form1.cs Form1.designer.cs MyFormerFormName.resx Form1.resx
那么通常意味着您重命名了该窗体,但Visual Studio并未删除旧的.resx文件。 一旦你手动删除文件(在这个例子中是MyFormerFormName.resx
),错误应该在下一次构build时消失。
截至8/03/16这对我工作!
首先通过右键单击项目来卸载项目,然后单击卸载项目 。
再次右键单击您的项目,然后单击编辑项目 。
它会显示你一些代码,寻找重复的值,在我看来是这样的
<EmbeddedResource Include="frmTerminalSerial.resx"> <DependentUpon>frmTerminalSerial.vb</DependentUpon> </EmbeddedResource> <EmbeddedResource Include="frmVisual.resx"> <DependentUpon>frmVisual.vb</DependentUpon> </EmbeddedResource> <EmbeddedResource Include="frmVisual.resx"> <DependentUpon>frmVisual.vb</DependentUpon> </EmbeddedResource> <EmbeddedResource Include="My Project\Resources.resx"> <Generator>VbMyResourcesResXFileCodeGenerator</Generator> <LastGenOutput>Resources.Designer.vb</LastGenOutput> <CustomToolNamespace>My.Resources</CustomToolNamespace> <SubType>Designer</SubType> </EmbeddedResource>
注意这个部分,它是重复的 !
<EmbeddedResource Include="frmVisual.resx"> <DependentUpon>frmVisual.vb</DependentUpon> </EmbeddedResource> <EmbeddedResource Include="frmVisual.resx"> <DependentUpon>frmVisual.vb</DependentUpon> </EmbeddedResource>
删除其中的一个,看起来像这样
<EmbeddedResource Include="frmTerminalSerial.resx"> <DependentUpon>frmTerminalSerial.vb</DependentUpon> </EmbeddedResource> <EmbeddedResource Include="frmVisual.resx"> <DependentUpon>frmVisual.vb</DependentUpon> </EmbeddedResource> <EmbeddedResource Include="My Project\Resources.resx"> <Generator>VbMyResourcesResXFileCodeGenerator</Generator> <LastGenOutput>Resources.Designer.vb</LastGenOutput> <CustomToolNamespace>My.Resources</CustomToolNamespace> <SubType>Designer</SubType> </EmbeddedResource>
保存它,右键单击您的项目,然后单击重新加载项目 。 你完成了!
通常情况下,如果您创build这样的迁移
Add-Migration "UpdateProducts"
Visual Studio将创build一个类名为UpdateProducts的迁移。 如果稍后使用相同的迁移名称添加新的迁移,它将生成类名为UpdateProducts1的迁移,自动将增加的数字作为后缀添加到结尾。 每次生成新迁移时,数字都会增加一个。
在我们的情况下,由于某种原因,VS感到困惑,并开始使用与现有迁移相同的类名生成后续迁移,以便有两个具有相同名称的自动生成的迁移。
只需更改新迁移的类名即可清除问题。
我做了一个search,我有同样的问题,这可能是因为你的表单有两个.resx,如果你试图删除一个,问题会消失我的forms:
Form1.Designer.cs Form1.resx Log_in.resx Form1
我删除Log_in.resx和我的程序再次工作
这只是发生在我身上。 我不小心“拖放”到另一个表格。 它最终制作了一个名为“副本”的副本。 我删除了它,问题就消失了。
当我运行“ Add Migration
命令时,发生了这种情况,并为迁移类提供了与我的项目名称相同的名称。 我删除了所有迁移类,并添加了新的,再次解决scheme构build。
如果在使用EntityFramework时尝试Add-Migration
出现此问题,则解决scheme很简单:删除Migrations
文件夹(在解决scheme资源pipe理器中)并执行Enable-Migrations
。 如果需要备份迁移。
我有这个问题,这是因为我有一个自定义控件的部分类 。
我不小心创build了一个.resx文件的部分
我想我是通过在部分类上打F7来做到这一点,并产生空的devise器forms。
删除部分类的.resx文件为我解决了它。 我正在使用版本控制,它显示这是一个新的文件。
希望这可以帮助
在所有项目中search错误列表中报告的类,就像在这个问题案例中一样, DryWash.WorkersScreen
可以在具有不同文件名但是在相同类名内的另一个文件中重复。
当我不小心生成了与业务对象同名的迁移时,我遇到了这个问题。 解决方法是删除迁移,然后用不同的名称创build一个新的迁移。
对我来说,问题是复制和粘贴.aspx,而不是重命名类文件后面的代码,以匹配复制的aspx文件的名称。 更改后面的代码和devise器类名称工作。
我确认WimOmbelets在评论中给出的答案。 当你在VS2012中重命名一个类时,这显然会发生(我以前从未使用过)。
我不能确定这是什么原因,但是我做了一个与我的正常方式不同的事情,我用F2来重命名它,而不是改变它,然后按下control-。
我以为我会在遇到这个错误后至less在一个随机的论坛上发帖,希望能够缓解一些人的问题。 我搜查了很多谷歌网站,没有一个我的确切问题。 我的原因是相似的,但在某些方面有所不同。
我实际上有一个分布在多个文件的类。 这个class是一个表格class。 这本身是成功的,并没有造成问题。 但是,这导致新类保持其独特的文件名,同时保持分离的“类表格”代码。 这很可能不是犹太教的做法,但当时发生的事情并不多。 这似乎是一个很好的select,以避免杂乱无章的代码。 不用说,下次我只是使用区域或其他select。
当我试图从第二个文件中获取代码,然后复制/粘贴到一个只有一个类的新的非表单文件时,出现了这个错误,正如我原本打算把它变成一个库,并使代码更加合适一样可读。 由于我不知道究竟是什么原因造成了这个错误,而且发生了很多的变化,所以需要一些时间来跟踪。 即使在逆转代码之后,我也设法错过了一对方法。
包含具有initializeComponent和窗体构造函数(load)的类Form的主窗体的方法。 这些方法的第二个副本似乎导致相同的错误。 即使删除了额外的代码和额外的表单和resx文件。 我甚至尝试删除合法的Resx文件,因为它不是主动需要的。 我无法有效地跟踪它,因为任何错误指向这些代码段的合法版本。 Ctrl + F和备份副本是你的朋友。
希望能帮助别人
当我复制表单以重用大部分function,然后重新命名表单时,发生了这种情况。 我去了引用的目录,发现实际上只有一个文件,复制了有问题的文件,将其重命名为引用我的新表单的名称,然后将新文件粘贴回目录中。
我不认为这是一个好的做法(我是C#的新手),但它确实有效,而不必重新创build所有内容。 我还需要在整个解决scheme的几个地方更新表单名称,原始表单和新表单都令人惊讶。
复制表单似乎不是一个好主意。
在我的情况下,这个问题是由某个designer.resx文件的EmbeddedResource标记引起的,该文件以某种方式被添加到.csproj文件中。
具体如下:
<EmbeddedResource Include="Forms\frmMenu.designer.resx"> <DependentUpon>frmMenu.designer.cs</DependentUpon> </EmbeddedResource>
在我的选项中,帮助删除每个错误引发的表单* .resx
细节信息
在我们的项目中,我们有6 * .resx为每个本地化(DE,GB,SK,RU,SRB)forms,如果我(从VS)删除FormName.sr-Latn-CS.resx比错误消失。 如果我尝试删除FormName.en GB.resx它没有帮助。 错误消失只是为了删除sr-Latn-CS.resx(也许devise者不能解决两个 – )。 当我将项目从VS 2010 Win 7迁移到VS2010 Win 10时,我首先看到了这个错误。
当我使用Ctrl + R + R
重命名其中一个Form
类时,我有同样的问题,VS提供默认情况下重命名的东西。
然后我在两个不同的文件( * .cs )上有两个具有相同类名的类。
class Bar { ... } // From Bar.cs class Bar { ... } // This should've been Foo, from Foo.cs
两个Bar
表示与其中一个不应该相同的资源文件。
这是一个微不足道的问题,但有时可能很难find原因,因为看着cs文件只是不能说哪一个是你应该找的。