问题描述
我的目标:在构建过程中运行 dotnet gitversion /updateprojectfiles
。
我的限制:并非所有机器都安装了 gitversion
,所以我需要在没有安装的机器上安装它。但是,当尝试安装已安装的工具时,Microsoft 的 dotnet tool install
将返回代码 1。所以我需要先检查它是否安装,如果没有,则安装它。
我的第一个解决方案:编写一个批处理文件并从预构建脚本中调用它。
复杂性:一些构建代码的机器是 linux,不识别批处理文件。
我的问题:如何将我的逻辑编写为预构建命令的一部分,同时适用于 Windows 和 Linux?
代码: gitversion-up-to-date.cmd:
FOR /F "tokens=* USEBACKQ" %%F IN (`dotnet tool list -g ^| findstr gitversion.tool`) DO (
SET "grep=TRUE"
)
if %grep%==TRUE goto setVersion
dotnet tool install -g GitVersion.Tool
setVersion
:setVersion
dotnet gitversion /updateprojectfiles
然后从 csproj 预构建:
$(SolutionDir)gitversion-up-to-date.cmd
我该如何编写这个逻辑,最好是直接在预构建中编写,同时适用于 windows 和 linux?
我最大的问题 atm 是了解如何编写用于查找工具是否已安装的逻辑。
TIA!
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)