Изменение вывода APK по умолчанию для включения версии в имя с помощью MSBuild - PullRequest
0 голосов
/ 18 октября 2019

при создании APK с использованием MSBuild Я хотел бы изменить имя выходного apk, включив в него номер версии

, поэтому

android: versionName = "3.1.5"

будет выглядеть так:

MyAndroidApp-3.1.5.apk

Я попытался сделать шаг после сборки, где я пытаюсьскопируйте apk под другим именем, но в шаге пост-сборки отсутствуют макросы с версией (которую я вижу)

при вызове

MSBuild .\trunk\TaxiTabletUniversal.Droid.MyAndroidProject /t:SignAndroidPackage  /p:Configuration=Release 

выходного apkв конечном итоге имя.

Я бы хотел, чтобы выходное имя получило название версии в

AndroidManifest.xml

file

1 Ответ

1 голос
/ 18 октября 2019

Изменение вывода APK по умолчанию для включения версии в имя с использованием MSBuild

Извините, но ответ может быть отрицательным, поскольку я знаю, что сам MSBuild не может читать такие данные, какНомер версии от AndroidManifest.xml. Другими словами, он не поддерживается msbuild.

MSBuild может получить доступ к любому свойству , определенному в файле проекта или импортированном целевом файле, но не может получить доступ к файлу AndroidManifest.xml. И нет официальной задачи msbuild , которая может это сделать для нас, поэтому, если вам действительно нужно такое поведение, мы должны сами написать код, чтобы прочитать информацию о версии из этого XML-файла. Темы по этому поводу: one , two , three ... (Слишком много тем в Интернете говорят об этом, поэтому я не буду здесь много говорить, еслиВы столкнулись с проблемой кодирования, дайте мне знать: -))

Вот два возможных способа после этого кодирования:

1.Создайте файл .exe с кодом для выполненияпереименуйте задание и вызовите .exe в событии после сборки

2. Запишите настраиваемое задание с именем CustomTask и добавьте этот сценарий в файл проекта для вызова этого задания после build или SignAndroidPackage цель.

  <UsingTask TaskName="CustomTask.CustomTask"
        AssemblyFile="path\CustomTask.dll"/>

  <!--Maybe it should be AfterTargets="SignAndroidPackage"-->
  <Target Name="CustomTarget" AfterTargets="Build">
    <CustomTask/>
  </Target>

Может это поможет.

...