如果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)
您是否曾嘗試在記事本++等編輯器中打開proj文件並找到並從中刪除引用? (如果我正確理解這個問題的話)
,我已經用於診斷丟失的文件的技術是安裝一個SCC提供加載項(如AnkhSVN的,如果你使用Subversion),然後在Solution Explorer中丟失的文件都會有不同的圖標。這對大型項目不太有用,但對於較小的項目,一眼就能看清楚。
問題是沒有刪除引用,但如果我刪除一個文件而不刪除引用,VS不會告訴我它,而是總是開始一個新的構建,即使沒有任何改變。 – fschoenm 2012-08-07 11:49:15
你看過嗎:http://visualstudiogallery.msdn.microsoft.com/fc504cc6-5808-4da8-ae86-8d3f9ed81606 – ianaldo21 2012-08-07 11:54:27
我認爲這個擴展只適用於被引用的程序集,但不是已被刪除的源文件。 – fschoenm 2012-08-07 12:09:37