我有一个包含多个项目的解决方案(每个项目都是一个常用工具的nuget包)。
我想在VSTS中构建所有这些项目。
每个项目都有一个独特的版本。
version.txt
文件存储在每个项目的文件夹中,并包含x.x.x
VSTS包含任务dotnet build
,可以构建整个解决方案或具体项目。但我需要自动化这个过程 - 一旦添加新项目,它应该自动构建。
我没有找到可以读取文件并修补csproj(FileVersion,AssemblyVersion,Version,PackageVersion)的所有参数的现成构建任务,并按项目执行此操作。
让这个version.txt文件具有单点配置(而不是更改所有参数)会很棒
答案 0 :(得分:0)
我没有找到可以读取文件的即用型构建任务 修补csproj的所有参数(FileVersion,AssemblyVersion,Version, PackageVersion),并按项目执行此操作
实际上,您可以通过相关任务轻松获得AssemblyFileVersion和AssemblyVersion(例如 Assembly Info Reader task )。
您只需指定AssemblyInfo.cs
文件的路径,然后您可以通过变量$(ASSEMBLYINFO.ASSEMBLYFILEVE)
获取AssemblyFileVersion,并通过变量$(ASSEMBLYINFO.ASSEMBLYVERSION)
获取AssemblyVersion。您可以使用该软件包的版本。
BTW:默认情况下,打包的包使用它的AssemblyVersion。因此,如果您想要使用其AssemblyVersions包,则无需进行其他设置。
答案 1 :(得分:0)
我没有找到解决方案所以发明了一种新的自行车。
在每个项目文件夹中都有一个version.txt
文件,其中包含精确包的版本
Powershell脚本查找所有version.txt
个文件,并使用该文件中的版本来修补.csproj
文件(包,程序集,等等)
构建所有项目
在我的场景中,我不想在版本中添加内部版本号,因此我的版本包含相同版本的软件包。所以我想跳过已存在的包
使用Powershell脚本,我nuget list <package name>
检查包是否已存在。
如果没有 - 将其推送到存储库。