Visual Studio 2010 有一个错误(或令人讨厌的行为),如果它包含对不再存在的(源)文件的引用(以及随后的所有依赖项目),它总是为项目启动新构建。现在我有一个相当大的项目,我知道找到此类文件的唯一方法是手动打开每个文件。
有没有更简单的方法来识别项目文件中的此类无效引用?
Visual Studio 2010 有一个错误(或令人讨厌的行为),如果它包含对不再存在的(源)文件的引用(以及随后的所有依赖项目),它总是为项目启动新构建。现在我有一个相当大的项目,我知道找到此类文件的唯一方法是手动打开每个文件。
有没有更简单的方法来识别项目文件中的此类无效引用?
我编写了一个 python 脚本来识别丢失的文件并将它们打印到控制台。
import os
import re
import sys
def show_help():
print()
print("Syntax:", sys.argv[0], "[filename]")
print()
def check_missing_project_includes(filename):
f = open(filename, 'r')
p = re.compile('(ClCompile|ClInclude) Include="(.*?)" />', re.IGNORECASE)
missing_files = []
for line in f:
m = re.search(p, line)
if m:
filename = m.group(2)
if not os.path.exists(filename):
missing_files.append(filename)
return missing_files
if len(sys.argv) != 2:
show_help()
exit()
filename = sys.argv[1]
missing_files = check_missing_project_includes(filename)
if len(missing_files) > 0:
print("Missing files:")
for mf in missing_files:
print("\t", mf)
我用来诊断丢失文件的一种技术是安装一个 SCC 提供程序插件(例如,如果您使用的是 Subversion,则为 AnkhSVN),然后在解决方案资源管理器中丢失的文件将有一个不同的图标。这对于较大的项目没有那么有用,但对于较小的项目,它一目了然。
您是否尝试过在 Notepad++ 等编辑器中打开 proj 文件并从中找到并删除引用?(如果我正确理解了这个问题)