我们使用带有 TFS 作为源代码控制和 CI 构建的 C# 项目。
我不断发现其他开发人员/Bin
在应该使用我们的/Libs
文件夹(我们保留第 3 方程序集的位置)时错误地从目录中引用程序集
如果有人这样做,作为解决方案构建或 CI 构建(我们也使用 powershell)的一部分,我可以做些什么来检查构建并使其失败?
我们使用带有 TFS 作为源代码控制和 CI 构建的 C# 项目。
我不断发现其他开发人员/Bin
在应该使用我们的/Libs
文件夹(我们保留第 3 方程序集的位置)时错误地从目录中引用程序集
如果有人这样做,作为解决方案构建或 CI 构建(我们也使用 powershell)的一部分,我可以做些什么来检查构建并使其失败?
由于您使用的是 PowerShell,因此您不妨使用它来解决这个问题;原理很简单:解析所有 csproj 文件并检查 HintPath 是否不包含您的 Bin 目录。在 PowerShell 中是这样的(我才刚刚开始学习 PS,所以可能有更短的方法):
# define path to bindir (or part of it) and main source dir
$binDir = path\to\Bin
$sourceDir = path\to\sourcefiles
# fix dots and slashes (or anything that cannot be used in regex
$binDirReg = $binDir -replace '\\', '\\' -replace '\.', '\.'
# parse
$res = Get-ChildItem -Recurse -Include *.csproj -Path $sourceDir |
Select-String "HintPath>.*$binDirReg.*<"
if( $res )
{
"ERROR somebody used Bin dir instead of Lib"
}