Выравнивание номеров версий блока с TFS Buildnumber

У меня точно такая же проблема. Транзакция работает, когда я передаю жестко закодированное значение, и я также использую Angular 6. У меня есть только ввод номера типа и кнопка Paypal. Я использую этот проект для использования Paypal https://github.com/Enngage/ngx-paypal Вот мой код:

component.html [114 ]



component.ts

import { Component, OnInit, Input } from '@angular/core';
import { PayPalConfig, PayPalEnvironment, PayPalIntegrationType } from 'ngx-paypal';

@Component({
  selector: 'app-paypal',
  templateUrl: './paypal.component.html',
  styleUrls: ['./paypal.component.css']
})
export class PaypalComponent implements OnInit {

  amount: number;
  public payPalConfig?: PayPalConfig;

  ngOnInit(): void {
    this.initConfig();
  }

  private initConfig(): void {
    this.payPalConfig = new PayPalConfig(PayPalIntegrationType.ClientSideREST, PayPalEnvironment.Sandbox, {
      commit: true,
      client: {
        sandbox: '...',
      },
      button: {
        label: 'paypal',
        layout: 'vertical'
      },
      onAuthorize: (data, actions) => {
        console.log('Authorize');
        return undefined;
      },
      onPaymentComplete: (data, actions) => {
        console.log('OnPaymentComplete');
        console.log(data);
      },
      onCancel: (data, actions) => {
        console.log('OnCancel');
      },
      onError: err => {
          if (typeof this.amount === 'number') {
          console.log('NUMBER !!!!!!!!!!');
        } else if (typeof this.amount === 'string') {
          console.log('STRING !!!!!!!!!!');
        }
        console.log('Amount : ' + this.amount);
        console.log('OnError : ' + err);
      },
      onClick: () => {
        console.log('onClick');
      },
      validate: (actions) => {
        console.log(actions);
      },
      experience: {
        noShipping: true,
        brandName: '...'
      },
      transactions: [{
        amount: {
          currency: 'EUR',
          total: this.amount
        }
      }]
    });
  }
}

Спасибо за любую помощь!

13
задан Fadeproof 13 February 2009 в 11:04
поделиться

2 ответа

То, что Вы просите, очень разумно и существует много способов достигнуть этого.

Лично, когда я делаю это, мне не нравится регистрировать файлы к управлению версиями, которые имеют сгенерированное число сервера сборки в них - оно просто представляет слишком много головных болей при слиянии кода через ответвления, но также и мне нравится, когда известный номер версии используется, когда разработчик делает сборку рабочей станции по сравнению с полученным блоком сервера надлежащей сборки для создания действительно легким сказать им независимо.

Для получения дополнительной информации о том, как мне нравится делать это, смотреть на Сборку TFS Recipies Wiki:

или мое сообщение в блоге по теме

Надежда, которая помогает,

Martin.

10
ответ дан 1 December 2019 в 23:32
поделиться

Да Вы можете. В какой-то момент, возможно в AfterGet, можно использовать BuildNumber и создать пользовательскую задачу обновить файлы AssemblyInfo.cs в исходном коде.

Мы сцепились в AfterGet и заставили нашу цель быть иждивенцем:

<Target Name="AfterGet" DependsOnTargets="VersionAssemblies" />

Наша Цель VersionAssemblies вытягивает все файлы AssemblyInfo.cs от $ (SolutionRoot):

<CreateItem Include="$(SolutionRoot)\**\AssemblyInfo.cs;">
    <Output TaskParameter="Include" ItemName="AssemblyInfos"/>
 </CreateItem>

проверяет их:

<Exec Command="$(TfCommand) checkout &quot;AssemblyInfo.cs&quot; -r"
          WorkingDirectory="$(MSBuildProjectDirectory)\..\sources" ContinueOnError="true"/>

редактирует их и заменяет версию файла $ (BuildNumber):

<File.Replace Path="%(AssemblyInfos.FullPath)"
                  NewValue="AssemblyFileVersion(&quot;$(BuildNumber)&quot;)"
                  RegularExpression="AssemblyFileVersion\(\&quot;(\d+.\d+.\d+.\d+)\&quot;\)"
                  IgnoreCase="true"
                  Force="true"/>

и затем перепроверяет файлы в:

<Exec Command="$(TfCommand) checkin /override:&quot;Automated&quot; /comment:&quot;Update AssemblyInfo files to version number $(BuildNumber) - $(NoCICheckinComment) &quot; /noprompt &quot;AssemblyInfo.cs&quot; /recursive"
          WorkingDirectory="$(MSBuildProjectDirectory)\..\sources" ContinueOnError="false"/>

Для замены версий файла я использую Файл. Задача замены, которая идет с задачами Microsoft SDC на CodePlex.

Также отметьте, которые, если у Вас есть сборка, которая инициирована на регистрации при регистрации в файлах AssemblyInfo.cs, удостоверяются, что комментарий включает $ (NoCICheckinComment) как это, заставляет TFS не инициировать другую сборку иначе, Вы закончите в бесконечном цикле сборки.

8
ответ дан 1 December 2019 в 23:32
поделиться
Другие вопросы по тегам:

Похожие вопросы: