如何指定MSBuild中版本控制程序集合信息文件的解决方案文件位置
-
26-12-2019 - |
题
我一直摆弄了一天,但没有运气。 MSBuild的装配版本控制以前用于工作,但最近我们将解决方案文件移动到项目根目录中的单独文件夹,并且从那时起,版本控制尚未工作。
下面是项目结构
代码文件夹
- > projecta文件夹
- > projectb文件夹
- > projectc文件夹
- >解决方案文件夹
*以前,解决方案(.sln)文件位于代码文件夹下。
当我们运行MSBuild时,我得到以下警告。
没有提供装配信息文件
下面是构建日志的剪切版本。
删除工作区
00:00删除源目录
00:00创建工作区
01:14获取工作区
00:00版本控制程序集
00:00汇编和汇编文件组装版本 处理:使用构建定义中包含的版本号模式
00:00设置所有装配属性值(b)版本控制程序集 以下模式:大会Version(1.0.0.0)和 汇编文件(yyyy.mm.dd.b)没有装配信息文件是 提供
下面是生成上面的日志的MSBuild任务。
<local:VersionAssemblyInfoFiles
AssemblyFileVersionPattern="[AssemblyFileVersionPattern]"
AssemblyInfoFilePattern=" AssemblyInfoFilePattern]"
AssemblyVersionPattern="[AssemblyVersionPattern]"
BuildDirectory="[BuildDirectory]" BuildNumberPrefix="
[BuildNumberPrefix]" BuildSettings="[BuildSettings]"
DisplayName="Versioning Assemblies"
DoCheckinAssemblyInfoFiles="[DoCheckinAssemblyInfoFiles]"
ForceCreateVersion="[ForceCreateVersion]"
sap:VirtualizedContainerService.HintSize="200,22"
mva:VisualBasic.Settings="Assembly references and imported namespaces
serialized as XML namespaces" UseVersionSeedFile="[UseVersionSeedFile]"
VersionSeedFilePath="[VersionSeedFilePath]" Workspace="[Workspace]"
xmlns:local="clr-namespace:TfsBuild.Versioning.Activities;
assembly=TfsBuild.Versioning.Activities">
<sap:WorkflowViewStateService.ViewState>
<scg:Dictionary x:TypeArguments="x:String, x:Object">
<x:Boolean x:Key="ShouldCollapseAll">False</x:Boolean>
<x:Boolean x:Key="ShouldExpandAll">True</x:Boolean>
</scg:Dictionary>
</sap:WorkflowViewStateService.ViewState>
</local:VersionAssemblyInfoFiles>
.
我也看过这个解决方案建议这里但没有运气。 有人可以将我指向正确的方向吗?我没有MSBuild的专家。
提前感谢。
解决方案
我最终做了以下解决方法。 我们没有选择将所有解决方案移动到项目的根级别。
a。创建一个新解决方案i.e someapp.lib.versioning.sln 此解决方案将生存在根文件夹下,它仅用于版本控制项目的其余部分。
b。 someapp.lib.version.sln的项目(.csproj)将与项目的其余部分相同。
所以新的结构是代码文件夹
- > projecta文件夹
- > projectb文件夹
- > projectc文件夹
- >解决方案文件夹
- > someapp.lib.versioning.sln
- > someapp.lib.versioning文件夹
c。现在我从解决方案文件夹中的一个解决方案中引用了SOMeApp.lib.version.proj。这意味着someapp.lib.versioning.proj有两个解决方案才能命中。
d。显示构建版本的项目将从someapp.lib.version.proj
中使用类型i.e类文件。根据标准构建版本传感器索引索引.lib.version.proj将具有正确的构建版本(someapp.lib.versioning.sln处于根级)
备注: 这只是一个解决方案而不是理想的解决方案。这不会介绍项目中的所有装配集。例如,如果我们想知道哪个版本内置了哪个程序,这不会工作。它只是持有解决方案的构建版本。