Подтвердить что ты не робот

Два имени выходных файлов разрешены на один и тот же вывод

Разрабатываю .NET приложение для .NET 3.5 Framework. Недавно я создал новую форму под названием WorkersScreen. Когда я пытаюсь запустить проект, я получаю эту ошибку:

Error   1   Two output file names resolved to the same output path: "obj\x86\Debug\DryWash.WorkersScreen.resources" DryWash

Что это значит?

4b9b3361

Ответ 1

Это может произойти в случае, если два файла .resx указывают на одну и ту же форму. Обычно происходит при переименовании форм (могут применяться другие причины, я не совсем уверен)

Если ваши файлы формы выглядят следующим образом:

Form1.cs
Form1.designer.cs
MyFormerFormName.resx
Form1.resx

то это обычно означает, что вы переименовали форму, но Visual Studio не удалил старый .resx файл. Как только вы удалите файл (в этом примере MyFormerFormName.resx) вручную, ошибка должна быть удалена после следующей сборки.

Ответ 2

Начиная с 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>

Сохраните его, щелкните правой кнопкой мыши на свой проект, затем нажмите перезагрузить проект. Вы сделали!

Ответ 3

Обычно, если вы создаете перенос, подобный этому

Add-Migration "UpdateProducts"

Visual Studio создаст миграцию с именем класса, например UpdateProducts. Если вы добавите новую миграцию позже, используя одно и то же имя миграции, она будет генерировать миграцию с именем класса, например UpdateProducts1., Автоматически добавляя добавленную цифру в конец как суффикс. Каждый раз, когда вы создаете новую миграцию, число увеличивается на один.

В нашем случае по какой-то причине VS запутался и начал генерировать последующие миграции с тем же именем класса, что и существующая миграция, так что там было две автоматически сгенерированные миграции с тем же именем.

Простое изменение имени класса для новой миграции устраняет проблему.

Ответ 4

Я сделал небольшой поиск У меня такая же проблема это, вероятно, потому, что у вашей формы есть два .resx если вы попытаетесь удалить один, проблема исчезнет моя форма:

Form1.Designer.cs
Form1.resx
Log_in.resx
Form1

i удалил Log_in.resx, и моя программа снова работала

Ответ 5

Убедитесь, что у вас нет двух файлов .resx. Смотрите в вашем проекте под YourServiceName.cs. Работает для меня.

Ответ 6

Это случилось со мной. Я случайно "перетащил" форму в другую. В итоге он создал копию "Копия". Я удалил его, и проблема исчезла.

Ответ 7

В моем случае проблема была вызвана тегом EmbeddedResource для файла designer.resx, который каким-то образом добавлен в файл .csproj.

В частности, следующее:

<EmbeddedResource Include="Forms\frmMenu.designer.resx">
      <DependentUpon>frmMenu.designer.cs</DependentUpon>
</EmbeddedResource>

Ответ 8

Искать во всем проекте класс, указанный в списке ошибок, например, в этом вопросе case DryWash.WorkersScreen он может быть повторен в другом файле с другим именем файла, но внутри одного и того же имени класса.

Ответ 9

У меня возникла эта проблема, когда я случайно создал миграцию с тем же именем, что и бизнес-объект. Решение состоит в том, чтобы удалить перенос, а затем создать новый с другим именем.

Ответ 10

Это случилось со мной, когда я скопировал форму, чтобы повторно использовать большую часть функциональности, а затем переименовал форму. Я пошел в каталог, на который ссылался, обнаружил, что на самом деле был только один файл, скопировал этот файл, переименовал его, чтобы ссылаться на имя моей новой формы, а затем вставил новый файл обратно в каталог.

Я не думаю, что это хорошая практика (я новичок в С#), но она работала, вместо того, чтобы воссоздать все. Мне также нужно было обновить имя формы в нескольких местах по всему решению, что удивительно в оригинальной форме, а также в новой форме.

Копирование форм не кажется хорошей идеей.

Ответ 11

Это случилось со мной, когда я запустил команду Add Migration и дал то же имя, что и имя моего проекта, как класс миграции. Я удалил все классы миграции и снова добавил новую сборку решений.

Ответ 12

Если эта проблема возникла во время работы с EntityFramework и пыталась выполнить Add-Migration, решение прост: удалите папку Migrations (в Обозревателе решений) и выполните Enable-Migrations. Резервные миграции, если вам нужно.

Ответ 13

У меня была проблема, и это было вызвано тем, что у меня был частичный класс настраиваемого элемента .

Я случайно создал файл .resx для частичного

Я думаю, что сделал это, нажав shift F7 на частичный класс и создав пустую форму дизайнера.

Удаление файла .resx в частичном классе разрешило его для меня. Я использовал контроль версий, и он показывал, что это новый файл.

Надеюсь, что это поможет

Ответ 14

Для меня проблема заключалась в копировании и вставке .aspx, а не в переименование кода за файлами класса, чтобы соответствовать имени для скопированного файла aspx. Изменены имена кода и имена классов дизайнеров.

Ответ 15

У меня возникла та же проблема: я удалил файлы миграции (через студию) после обновления базы данных.

Ответ 16

Я только что получил эту проблему, используя VS 2019 Community Edition.

У меня не было дубликатов .resx файлов. У меня не было дубликатов .cs файлов. Я не смог найти решение в Интернете.

Чтобы устранить проблему, я очистил решение, а затем перезапустил VS. Не уверен, почему, но это сработало. Надеюсь это поможет.

Ответ 17

Я подтверждаю ответ WimOmbelets, указанный в комментариях. Это может произойти, если вы переименуете класс в VS2012 (у меня никогда не было этого в предыдущей версии).

Я не могу быть уверен, что это причина, но одна вещь, которую я отличал от своего обычного способа, я использовал F2, чтобы переименовать ее, а не изменять ее, а затем нажав control -.

Ответ 18

Я думал, что после публикации этой ошибки я опубликую хотя бы один случайный форум в надежде облегчить проблемы с elses. Я искал многие сайты Google, и у меня не было моей проблемы. Мое дело было похоже, но по-разному в некотором роде.

На самом деле у меня был частичный класс, распределенный по нескольким файлам. этот класс был классом формы. Это само по себе было успешным и не вызывало проблем. Однако это привело к тому, что новый класс сохранил свое уникальное имя файла, сохранив при этом код "класс формы". Скорее всего, это была не кошерная практика, но тем не менее это произошло в то время. Это казалось хорошей альтернативой, чтобы получить много загроможденного кода. Излишне говорить, что в следующий раз я просто буду использовать регионы или другую альтернативу.

Ошибка произошла, когда я попытался взять код из второго файла и скопировать/вставить в новый файл без формы только с классом, как я предполагал, по сути, превратив его в библиотеку и немного изменив код более правильной и читаемой. Поскольку я не знал точно, что вызвало ошибку, когда это произошло, и сделал небольшое множество изменений, потребовалось некоторое время для отслеживания. Даже после изменения кода мне удалось пропустить пару методов.

Методы основной формы, содержащие класс Form с initializeComponent и конструктор форм (load). Вторая копия этих методов привела к той же ошибке. Даже после удаления дополнительного кода и дополнительных файлов формы и resx. Я даже попытался удалить законный файл resx, так как он не был активно нужен. Я не смог эффективно отслеживать это, потому что любые ошибки указывали на законные версии этих сегментов кода. Ctrl + F и резервные копии - ваши друзья.

Надеюсь, что кто-то поможет

Ответ 19

В моей опции, помогите удалить один *.resx для каждой формы, где возникла ошибка

Подробно INFO

В нашем проекте мы имеем 6 *.resx для каждой формы для локализации (DE, GB, SK, RU, SRB), и если я удалю (из VS) FormName.sr-Latn-CS.resx, чем ошибка исчезла. Если я попробую удалить FormName.en-GB.resx, это не помогло. Ошибка исчезла только для удаления sr-Latn-CS.resx(возможно, дизайнер не может решить два вопроса). Я впервые увидел эту ошибку, когда я перенес проект из VS 2010 Win 7 в VS2010 Win 10.

Ответ 20

У меня была такая же проблема, когда я переименовал один из моих классов Form, используя Ctrl + R + R, который VS предоставляет для переименования объектов по умолчанию.

Затем я несколько получил два класса с тем же именем класса на 2 разных файлах (*. cs).

class Bar { ... } // From Bar.cs
class Bar { ... } // This should've been Foo, from Foo.cs

Два Bar указывают один и тот же файл ресурсов, который один из них не должен.

Это тривиальная проблема, но иногда бывает трудно найти причину, потому что просмотр файлов cs просто не может сказать, какой из них нужно искать.