如何从项目中删除不必要的资源?

Pra*_*are 14 c# c++ resources visual-studio

我正在处理一个非常大的项目(一个包含16个项目的解决方案,每个项目包含大约100个文件).

它是用C++/C#用Visual Studio 2005编写的.
其中一个项目有大约2000个资源,其中只有400个实际使用.
如何删除这些未使用的资源?

我试图通过搜索旧的任务来完成任务.
它工作,我能够构建解决方案,但它在运行时崩溃.

我猜是因为使用了枚举.(重要)

如何确保它不会在运行时中断?

编辑:
我认为一种方法可能是在运行时(以某种方式)动态生成资源(未找到).
但我不知道...... 什么.

注意:如果还有一些不必要的资源,那也没关系.

C J*_*son 5

我要做的是编写一个自定义工具来搜索您的源代码。

如果您从头文件(即可能称为 resource.h)中删除资源 ID,然后重新编译并且没有收到警告:那么这是一件好事。

这是我将如何编写应用程序。将要检查的资源文件 (resource.h) 作为输入。打开头文件 (*.h) 并解析所有资源常量(或者至少是您感兴趣的一次)。将它们存储在哈希表中,以便稍后快速查找。对于项目中的每个代码文件,在文本中搜索每个资源 ID 的实例。使用资源 ID 时,增加哈希表中的值,否则将其保留为零。最后,转储日志文件或其他内容为零的所有资源 ID。然后测试您确实可以安全地删除那些指定的资源 ID。一旦你这样做了,然后编写另一个工具,根据日志文件的结果删除指定的资源 ID。

您可以用 perl 编写这样一个工具,它会在大约 0.3 秒内执行:但是需要几天的时间来调试。:) 或者你可以用 .NET 编写它,它的执行速度会慢一点,但需要一个小时来调试。:)