Как переименовать весь проект в VC ++ 2005 - PullRequest
1 голос
/ 27 сентября 2008

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

sillyname.h
sillyname.cpp
sillyname.dsp 

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

main.obj : error LNK2001: unresolved external symbol __imp__InitCommonControls@0
Debug/New_Name_Thats_not_so_silly.exe : fatal error LNK1120: 1 unresolved externals
Error executing link.exe.

Должен быть более простой способ изменить все это, верно?

Ответы [ 5 ]

3 голосов
/ 27 сентября 2008

Вот Шаг за шагом в блоге Стива Эндрюса (он работает над Visual Studio в Microsoft)

1 голос
/ 20 августа 2013

Я тоже всегда раздражаюсь, когда делаю это вручную.

Итак, я попробовал некоторые инструменты, доступные googling - два не работали (VS C ++ здесь), не знаю, если они более полезны для C #.

Следующий инструмент работал хорошо для меня: я использовал пробную версию, но я заплачу 39, - баксов за это. Для меня это того стоит. Он также имеет надстройку VS. VS 2013 не поддерживалась напрямую, по крайней мере, не упоминалась, но когда я посмотрел: http://www.kinook.com/CopyWiz

Переименование на месте не сработало (ошибка доступа), но «переименование при копировании» работало нормально.

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

Рациональная часть моего мозга запрещает сновидению программировать собственный инструмент - мне повезло! : -)

1 голос
/ 27 сентября 2008

Я не проверял это, но я делал это несколько раз, и если моя память мне не изменяет, вы можете использовать функцию поиска и замены в VS2005 для переименования всех экземпляров строки "X "в" Y "в любом типе файла. Затем вам нужно закрыть решение и изменить имя файла (ов) проекта (и любого другого файла с таким же именем независимо от расширения).

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

0 голосов
/ 27 сентября 2008

Я предполагаю, что в дополнение к переименованному набору файлов вы также сохраняете полный "параллельный" набор исходных файлов в каком-то другом каталоге, я прав?

Если у вас есть обе версии, я бы сделал следующее:

Получите инструмент сравнения файлов, например Beyond Compare или DiffMerge , и сравните старый файл SLN и новый файл SLN рядом друг с другом. Также сделайте это для каждого файла "proj" и любых других файлов типа "config".

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

В любом случае, вы также можете начать работу с переименованным проектом вручную, учитывая, что он уже не работает. Вы не можете сделать это намного хуже. И еще: вы можете узнать некоторые полезные советы о структуре XML этих файлов.

Даже если вы делаете небольшие ошибки при ручной настройке этих файлов, меня неоднократно поражало то, как Visual Studio обрабатывает вещи. Visual Studio обычно скажет вам, где именно вы ошиблись.

0 голосов
/ 27 сентября 2008

Вы можете просто переименовать файл .vcproj или .dsp, а затем либо создать новое рабочее пространство (sln dsw) и включить переименованный проект, либо просто изменить имя внутри файла sln (это просто xml). Я не могу вспомнить формат старого рабочего пространства, но он все еще текстовый.

Вы можете вручную переименовать и снова включить все .cpp редактирования файла проекта и переименовать их там.

извините, не знаю, какой инструмент рефакторинга сделает все это, но, вероятно, есть один.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...