我们正在使用带有TFS的C#项目作为源代码控制和CI构建。
我一直在发现其他开发人员在使用我们的/Bin
文件夹(我们保留第三方程序集)时错误地引用/Libs
目录中的程序集
如果有人这样做,我可以做什么作为解决方案构建或CI构建的一部分(我们也使用powershell)来检查和失败构建?
答案 0 :(得分:1)
在构建流程模板中添加 custom activity 。活动的伪代码应如下所示:
HintPath
的{{1}}元素。要完成解决方案,还请考虑为VS客户端强制执行custom check-in policy。
答案 1 :(得分:0)
由于您使用的是PowerShell,因此也可以将它用于此问题;原理很简单:解析所有csproj文件并检查HintPath doe是否不包含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"
}