Есть ли способ восстановить отсутствующий RESX-файл?

У меня есть исходный код проекта, но мне не хватает файла .resx, что препятствует компиляции. Есть ли способ повторно сгенерировать для него файл resx? Это проект C #, который я создал с помощью Visual Studio 2010 Professional на компьютере XP, который я пытаюсь открыть с помощью Visual Studio 2012 Ultimate на компьютере с Windows 8.

ОБНОВИТЬ

Он (Resources.resx) действительно был там (в разделе «Свойства»), поэтому я полагаю, что «не может быть найден» означает: «Мне не нравится тот, который вы мне дали».

Когда я нажал клавишу F6, чтобы попробовать еще раз, я получил предупреждение: «Пользовательский инструмент ResXFileCodeGenerator связан с файлом Properties \ Resources.resx, но результат этого пользовательского инструмента не был найден в проекте. Вы можете попробуйте повторно запустить настраиваемый инструмент, щелкнув правой кнопкой мыши файл в обозревателе решений и выбрав «Запустить настраиваемый инструмент».

также: «Пользовательский инструмент« SettingsSingleFileGenerator »связан с файлом« Properties \ Settings.settings », но выходные данные пользовательского инструмента не были найдены в проекте. Вы можете попробовать повторно запустить пользовательский инструмент, щелкнув правой кнопкой мыши на в обозревателе решений и выбрав «Запустить настраиваемый инструмент».

Я запустил «Запустить настраиваемый инструмент» как для Resources.resx, так и для Settings.settings, но по-прежнему получаю ту же ошибку и два предупреждения.


person B. Clay Shannon    schedule 13.11.2012    source источник
comment
Вы имеете в виду Resources.resx файл? Если это так, перейдите в свойства проекта, затем на вкладку «Ресурсы», и там должна быть большая ссылка, по которой можно щелкнуть, чтобы восстановить его.   -  person Patrick Quirk    schedule 13.11.2012
comment
Спасибо; мой ответ довольно длинный, поэтому я добавляю его к своему исходному сообщению.   -  person B. Clay Shannon    schedule 13.11.2012
comment
Я изменил теги на вопрос, так как версии OS / VS и язык не имели отношения к делу. Ту же проблему (и решения) можно найти с помощью VS2008 на машине XP с проектом VB.Net.   -  person DeanOC    schedule 14.11.2012


Ответы (10)


Если вы скомпилировали проект в прошлом и у вас есть доступная dll / exe, вы можете использовать приложение JetBrains DotPeek для экспорта resx XML из сборки.

Откройте dll / exe в DotPeek.

введите описание изображения здесь

Затем дважды щелкните каждый ресурс, чтобы увидеть XML в окне. Затем вы можете скопировать / вставить XML в текстовый редактор и сохранить как файл .resx.

Не пытайтесь щелкнуть ресурс правой кнопкой мыши и попробовать параметр «Сохранить ресурс в файл», поскольку это не создает файл в том же формате, который вы видите на экране.

person DeanOC    schedule 14.11.2012

Щелкните правой кнопкой мыши и удалите проект формы .resx щелкните правой кнопкой мыши форму и обновите проект сборки диспетчера ресурсов, запустите проект

person Milind Morey    schedule 22.10.2013
comment
Щелкните правой кнопкой мыши форму и обновите диспетчер ресурсов? Кажется, у меня этого нет в Visual Studio 2017? - person J. Scott Elblein; 13.05.2019
comment
Если форма относится к форме Windows, это возможно только в том случае, если файл конструктора содержит всю необходимую информацию. В общем случае файл resx формы содержит информацию, которой больше нигде не существует. Возможно, это работает в тривиальном случае, когда вы открываете дизайнер и вручную удаляете .resx - по-видимому, его можно восстановить из информации в памяти. Но это невозможно, если вы пытаетесь загрузить проект с формой, у которой отсутствует .resx. - person ToolmakerSteve; 09.05.2021

Я знаю, что этот вопрос немного устарел, но у меня возникли проблемы с созданием файлов .resources.dll, и после недавнего изменения версии .NET Framework файлы .ResX по-прежнему включали старую версию .NET Framework. Я смог решить эту проблему, открыв затронутые формы и выбрав «Дизайн» -> «Локализуемый» и изменив его на «Ложь». Затем я построил проект, затем снова изменил его на «True», и файл .ResX был регенерирован.

person ub3rst4r    schedule 19.06.2013
comment
К сожалению, мне не повезло. Переключение их вперед и назад не имело никакого значения. У меня тоже уже установлено значение False. - person J. Scott Elblein; 13.05.2019

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

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

person Wayne    schedule 05.02.2014
comment
Работает только в том случае, если файл дизайнера содержит всю информацию, необходимую для регенерации resx. Это не всегда так. - person ToolmakerSteve; 09.05.2021

Я пришел из будущего, Visual Studio 2019. У меня была такая же проблема после более крупного процесса слияния (по какой-то причине меня попросили слить все или все файлы * .Design). Было очевидно, что каким-то образом мне пришлось регенерировать автоматически сгенерированный код из файлов .resx.

Решение: я изменил запись (имя, а не значение), сохранил ее, вернул обратно, сохранил. Похоже, это вынудило регенерировать все файлы .resx, и проект снова компилировался.

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

person Battle    schedule 14.05.2021

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

person COLD TOLD    schedule 13.11.2012

Вот как я решил это: я открыл недостающие вспомогательные файлы (AssemblyInfo.cs, Resources.resx, Resources.Designer.cs, Settings.settings и Settings.Designer.cs) из другого проекта в Блокноте, удалил то, что не было. t принадлежат (например, ссылка на ThemeEditor или что-то подобное), при необходимости изменили другие вещи (имя приложения или пакета), и они были окончательно приняты как принадлежащие моему приложению.

person B. Clay Shannon    schedule 13.11.2012

Пользователи Visual Studio 2012-2015. Для веб-приложения просто выберите элемент управления Интернетом (ascx) или страницу (aspx), в которой отсутствует resx, в обозревателе решений, перейдите в меню «Проект» и выберите «Преобразовать в веб-приложение», нажмите OK на Подсказка. Вы должны увидеть новые файлы под выбранным элементом в обозревателе решений.

person Peter Brennen    schedule 10.10.2016

скопируйте файл .resx любой другой формы в проекте в папку проекта и повторите попытку. У меня это сработало.

person user4815065    schedule 10.01.2016

Если вы используете VS 2017 или выше, я просто удалил файл.

person George M    schedule 18.03.2020