2013-06-20 49 views
1

我會發現所有使用PowerShell腳本和正則表達式的第三方程序集的錯誤引用。 每個項目文件包含這樣的引用:使用正則表達式在項目文件中查找錯誤的引用

<Reference Include="Microsoft.Practices.ServiceLocation"> 
<HintPath>..\..\..\..\ThirdPartyLibraries\CommonServiceLocator\Microsoft.Practices.ServiceLocation.dll</HintPath> 
</Reference> 

...或這個:

<Reference Include="FluentValidation"> 
    <HintPath>..\..\..\..\Output\Debug\FluentValidation.dll</HintPath> 
</Reference> 

的第一項是正確的,但第二項是錯誤的。

我試過建立一個正則表達式,它找到所有包含對輸出文件夾中程序集的引用的所有行。

這個表達式可以正常工作:^.*(?=Output).*\.dll</HintPath>

但我認爲這是更好地發現,不包含ThirdPartyLibraries

所有引用但這不起作用:^.*(?!ThirdParty).*\.dll</HintPath>

它還發現了線即包含ThirdPartyLibraries,這是不正確的。

你看到正則表達式有什麼問題嗎?

+0

有什麼區別 「錯」? – Bohemian

+0

** Output \ Debug **不是我們項目中引用ThirdParty程序集的正確位置。這是我們構建過程的一個簡單規則。 –

回答

1

此正則表達式的所有提示路徑包含ThirdPartyLibraries不匹配

<HintPath>(?!.*?ThirdPartyLibraries.*$) 
+0

感謝您的快速回答! –

相關問題