Как указать местоположение файла решения для версий для версий в MSBuild
-
26-12-2019 - |
Вопрос
Я протел с этим на день, но не повезло. Ассамблея, версившаяся с помощью 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 находится на уровне корня)
Примечания: Это просто работа вокруг, а не идеальное решение. Это не верстю всех собраний в проекте. Например, если мы хотим знать, какое собрание было построено в какую версию, это не собирается работать. Это просто место для размещения, чтобы получить создание версии решения.