我一直摆弄了一天,但没有运气。 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处于根级)

备注: 这只是一个解决方案而不是理想的解决方案。这不会介绍项目中的所有装配集。例如,如果我们想知道哪个版本内置了哪个程序,这不会工作。它只是持有解决方案的构建版本。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top