Как указать местоположение файла решения для версий для версий в MSBuild

StackOverflow https://stackoverflow.com//questions/25075651

Вопрос

Я протел с этим на день, но не повезло. Ассамблея, версившаяся с помощью MSBuild, используемая для работы до того, как в последнее время мы перевели файлы решения в отдельной папке в корневом корне проекта, и с тех пор версия не работает.

ниже - структура проекта

Кодовая папка

-> Папка проекта

-> Папка Projectb

-> Папка ProjectC

-> Решения Папка

* Ранее файлы решений (.SLN) были под папкой кода.

Когда мы запускаем MSBuild, я получаю ниже предупреждение.

Никакие файлы сбора данных не были предоставлены

Ниже приведен режущий версию журнала сборки.

Удалить рабочее пространство

00:00 Удалить источники DELETE

00:00 Создать рабочее пространство

01:14 Получить рабочее пространство

00:00 Версификационные сборки

00:00 Версия сборки 00:00 Обработка: Использование номеров номеров версий, включенные в определение сборки

00:00 Установите все значения свойств в сборе (б) сборки версий Следующие шаблоны: Assockerversion (1.0.0.0) и AssemblyFilEversion (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. Проект (.csproj) для someapp.lib.versioning.sln будет жить на том же уровне, что и остальные проекты.

Так что новая структура

Кодовая папка

-> Папка проекта

-> Папка Projectb

-> Папка ProjectC

-> Решения Папка

-> someapp.lib.versioning.sln

-> Сомеапанп.lib.versioning папка

c. Теперь я ссылаюсь на someapp.lib.versioning.proj от одного из решений в папке решений. Это означает Someapp.lib.versioning.proj имеет два решения, прикрепленные к удару.

d. Проект, который отображает версию сборки, будет использовать файл класса I.E типа SomeApp.lib.versioning.proj

согласно стандартной сборке сборки сборки SOMEAPP.LIB.Versioning.proj будет иметь правильную версию сборки (SOMEAPP.LIB.Versioning.sln находится на уровне корня)

Примечания: Это просто работа вокруг, а не идеальное решение. Это не верстю всех собраний в проекте. Например, если мы хотим знать, какое собрание было построено в какую версию, это не собирается работать. Это просто место для размещения, чтобы получить создание версии решения.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top