我有一个非常大的项目,我为自己做了一个客户,并通过一些修改要求他们自己的版本。项目名称相当愚蠢,我的客户想要源代码,所以我认为如果我重命名我的所有文件是最好的
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.
必须有一种更简单的方法来改变这一切,对吧?
答案 0 :(得分:3)
这是史蒂夫安德鲁斯博客上的Step by Step(他在微软的Visual Studio工作)
答案 1 :(得分:1)
我还没有验证过这个,但是我已经多次这样做了,如果我的记忆能够正常使用,你实际上可以使用VS2005中的搜索和替换功能来重命名字符串“X”的所有实例在任何类型的文件中“到”Y“。 然后,您需要关闭解决方案并更改项目(以及任何其他具有相同名称的文件,无论扩展名如何)文件名。
之后您显然需要进行完全重建。
答案 2 :(得分:1)
我发现它总是令人讨厌,要手动完成。
所以我尝试了谷歌搜索提供的一些工具 - 两个不起作用(这里是VS C ++),不知道,如果它们对C#更有用。
以下工具对我有用:我使用过试用版,但我会支付39美元 - 为它买单。对我来说这是值得的。它还有一个VS加载项。 VS 2013没有直接支持,至少没有提到,但是,当我看到时: http://www.kinook.com/CopyWiz
就地重命名不起作用(访问错误),但“重命名时重命名”工作正常。
但我真的很想知道,如果它像一些程序员所说的那么困难。对于大多数部件文件重命名和搜索和替换项目目录中所有文本文件中的所有出现应该是一个非常简单和有效的方法。也许某人可能会对那些如此困难的人表示敬意。
我大脑的理性部分禁止梦想部分编写自己的工具 - 我很幸运! : - )
答案 3 :(得分:0)
您可以简单地重命名.vcproj或.dsp文件,然后创建一个新的工作区(sln dsw)并包含重命名的项目或只是简单地在sln文件中输入名称(它只是xml)我不记得了旧工作区的格式,但它仍然是文本。
您可以手动重命名并重新包含编辑项目文件的所有.cpp,并在那里重命名。
抱歉不知道重构工具会做什么,但可能有一个。
答案 4 :(得分:0)
我假设除了重命名的文件集之外,你还在其他目录中维护一个完整的“并行”原始文件集,我是对的吗?
假设你有两个版本,我会做的是:
获取Beyond Compare或DiffMerge等文件比较工具,并将旧SLN文件与新SLN文件并排比较。也为每个“proj”文件和任何其他“配置”类型文件执行此操作。
可以手动编辑这些文件。通常查看两个副本之间的不同之处将有助于说明您应该采取哪些措施来使第二个副本正常工作。
无论如何,你可能会手动修改重命名的项目,因为它已经无法正常工作。你不能让事情变得更糟。而且:你可能会学习一些关于这些文件的XML结构的方便技巧。
即使你在手动调整这些文件时犯了一些小错误,我也一再对Visual Studio如何处理事情印象深刻。 Visual Studio通常会告诉您错误的位置。