代码改变世界

天行健,君子以自强不息

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

每个产品一个根目录

Directory.Build.props的工作模式和NuGet.Config不同,Directory.Build.props不能继承。当dotnet restore工作的时候,会从当前目录开始,逐级向上查找,找到一个Directory.Build.props文件,就不会再向上查找了。

公司如果有多套产品在开发,一般每个产品里面,对同一个包,使用唯一版本号就可以了。

因此每个产品一个根目录就行。比如我们公司正在开发“进销存”,那么就在“E:\dev\进销存”这里放置一个Directory.Build.props即可

如何让所有的开发人员,都能获取到最新的Directory.Build.props及其Import的相关文件呢?

如果都在一个办公室,用Windows网络共享来拷贝也是权宜之计。下载大家都习惯远程协同办公了,自然是用网站来分发这堆文件更妥当。

然后编写一个Windows批处理文件,放在产品根目录,文件名称是“E:\dev\进销存\download-directory-builds-props.bat”。

download-directory-builds-props.bat内容如下:

注意:脚本里要写上分发文件的http网站的完整URL。

#@echo off
del Directory.*.props /q
del urls.txt /q

# Windows的批处理文件声明变量的时候,“=”前后不能有空格
set websiteRootUrl="http://dev.amihome.cn/"

ECHO. %websiteRootUrl%

wget %websiteRootUrl%urls.txt --content-disposition

for /f %%i in (urls.txt) do (echo %%i
wget -nv -x -nH %websiteRootUrl%%%i --content-disposition
)
dotnet nuget locals plugins-cache --clear

ECHO.
ECHO.BIN and OBJ folders have been successfully deleted. Press any key to exit.
pause > nul

上述脚本需要wget

wget官网下载1.15版本,这个版本只有wget.ext一个文件,不依赖其它组件。如果下载1.2以后的版本,windows 11打了最新补丁的会自动删除wget.exe。

然后找一个文件夹保存。我们是放在D:\tools\wget下,然后把这个wget加入Windows的“用户变量”或者“系统变量”的“Path”里。

我是在“系统变量”这里添加了,详细步骤如下:

img

img

img

D:\tools\wget下的文件

img

在我的Windows下,步用重新启动电脑就生效了。也许你的系统是需要重新启动。

执行download.bat

在产品根目录下,双击download.bat

然后就会发现多了一个urls.txt和一个Directory.Build.props,另外多了子文件夹,子文件夹里面是Import的那些文件。

img

脚本执行的时候我截图如下:(脚本执行的太快了)

img

img

因为wget后面我带了开关,所以会根据url里面的路径,自动创建子目录。

img

posted on 2024-02-28 09:45  终南山人  阅读(113)  评论(0编辑  收藏  举报