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>
最初のエントリは正しいですが、2 番目のエントリは間違っています。
出力フォルダー内のアセンブリへの参照を含むすべての行を見つける正規表現を作成しようとしました。
この式は正しく機能します。^.*(?=Output).*\.dll</HintPath>
しかし、含まれていないすべての参照を見つける方が良いと思いますThirdPartyLibraries
しかし、これはうまくいきません:^.*(?!ThirdParty).*\.dll</HintPath>
を含む行も検出されますがThirdPartyLibraries
、これは正しくありません。
正規表現の何が問題なのか分かりますか?