Create a build configuraition to build OOB logging site extension package (#3643)
This commit is contained in:
parent
7f34909708
commit
d3216a66c1
|
|
@ -0,0 +1,38 @@
|
|||
trigger:
|
||||
branches:
|
||||
include:
|
||||
- release/2.2
|
||||
|
||||
phases:
|
||||
- phase: SiteExtensions
|
||||
variables:
|
||||
CI: true
|
||||
DOTNET_SKIP_FIRST_TIME_EXPERIENCE: true
|
||||
|
||||
# This variable is required by MicroBuildSigningPlugin to determine permissions for codesigning.
|
||||
TeamName: AspNetCore
|
||||
|
||||
# SignType = { test, real }
|
||||
# This is prefixed underscore because variables automatically become environment variables (and therefore MSBuild properties),
|
||||
# and this one was causing issues in MSBuild projects which use the $(SignType) MSbuild prop.
|
||||
_SignType: real
|
||||
|
||||
steps:
|
||||
- task: MicroBuildSigningPlugin@1
|
||||
displayName: Install MicroBuild plugin
|
||||
condition: and(succeeded(), in(variables['_SignType'], 'test', 'real'))
|
||||
inputs:
|
||||
signType: $(_SignType)
|
||||
zipSources: false
|
||||
- script: src/SiteExtensions/build.cmd -ci
|
||||
displayName: Run src/SiteExtensions/build.cmd
|
||||
- task: PublishBuildArtifacts@1
|
||||
displayName: Upload artifacts
|
||||
condition: eq(variables['system.pullrequest.isfork'], false)
|
||||
inputs:
|
||||
pathtoPublish: ./src/SiteExtensions/artifacts/
|
||||
artifactName: artifacts-Windows-Release
|
||||
artifactType: Container
|
||||
- task: MicroBuildCleanup@1
|
||||
displayName: Cleanup MicroBuild tasks
|
||||
condition: always()
|
||||
|
|
@ -0,0 +1,9 @@
|
|||
<Project>
|
||||
|
||||
<Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory)..\, Directory.Build.props))\Directory.Build.props" />
|
||||
|
||||
<Import Project="build\sources.props" />
|
||||
<Import Project="build\dependencies.props" />
|
||||
<Import Project="version.props" />
|
||||
|
||||
</Project>
|
||||
|
|
@ -0,0 +1,54 @@
|
|||
|
||||
Microsoft Visual Studio Solution File, Format Version 12.00
|
||||
# Visual Studio 15
|
||||
VisualStudioVersion = 15.0.26124.0
|
||||
MinimumVisualStudioVersion = 15.0.26124.0
|
||||
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{0ED05384-4F64-44BA-A4AA-47519DA26E8C}"
|
||||
EndProject
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Microsoft.AspNetCore.AzureAppServices.SiteExtension", "src\Microsoft.AspNetCore.AzureAppServices.SiteExtension\Microsoft.AspNetCore.AzureAppServices.SiteExtension.csproj", "{69E22952-302D-4C56-B2BE-7C086EB05C79}"
|
||||
EndProject
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Microsoft.Web.Xdt.Extensions", "src\Microsoft.Web.Xdt.Extensions\Microsoft.Web.Xdt.Extensions.csproj", "{637E1D65-7F1C-476B-AD0A-30B295DF5414}"
|
||||
EndProject
|
||||
Global
|
||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||
Debug|Any CPU = Debug|Any CPU
|
||||
Debug|x64 = Debug|x64
|
||||
Debug|x86 = Debug|x86
|
||||
Release|Any CPU = Release|Any CPU
|
||||
Release|x64 = Release|x64
|
||||
Release|x86 = Release|x86
|
||||
EndGlobalSection
|
||||
GlobalSection(SolutionProperties) = preSolution
|
||||
HideSolutionNode = FALSE
|
||||
EndGlobalSection
|
||||
GlobalSection(ProjectConfigurationPlatforms) = postSolution
|
||||
{69E22952-302D-4C56-B2BE-7C086EB05C79}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{69E22952-302D-4C56-B2BE-7C086EB05C79}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{69E22952-302D-4C56-B2BE-7C086EB05C79}.Debug|x64.ActiveCfg = Debug|Any CPU
|
||||
{69E22952-302D-4C56-B2BE-7C086EB05C79}.Debug|x64.Build.0 = Debug|Any CPU
|
||||
{69E22952-302D-4C56-B2BE-7C086EB05C79}.Debug|x86.ActiveCfg = Debug|Any CPU
|
||||
{69E22952-302D-4C56-B2BE-7C086EB05C79}.Debug|x86.Build.0 = Debug|Any CPU
|
||||
{69E22952-302D-4C56-B2BE-7C086EB05C79}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{69E22952-302D-4C56-B2BE-7C086EB05C79}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{69E22952-302D-4C56-B2BE-7C086EB05C79}.Release|x64.ActiveCfg = Release|Any CPU
|
||||
{69E22952-302D-4C56-B2BE-7C086EB05C79}.Release|x64.Build.0 = Release|Any CPU
|
||||
{69E22952-302D-4C56-B2BE-7C086EB05C79}.Release|x86.ActiveCfg = Release|Any CPU
|
||||
{69E22952-302D-4C56-B2BE-7C086EB05C79}.Release|x86.Build.0 = Release|Any CPU
|
||||
{637E1D65-7F1C-476B-AD0A-30B295DF5414}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{637E1D65-7F1C-476B-AD0A-30B295DF5414}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{637E1D65-7F1C-476B-AD0A-30B295DF5414}.Debug|x64.ActiveCfg = Debug|Any CPU
|
||||
{637E1D65-7F1C-476B-AD0A-30B295DF5414}.Debug|x64.Build.0 = Debug|Any CPU
|
||||
{637E1D65-7F1C-476B-AD0A-30B295DF5414}.Debug|x86.ActiveCfg = Debug|Any CPU
|
||||
{637E1D65-7F1C-476B-AD0A-30B295DF5414}.Debug|x86.Build.0 = Debug|Any CPU
|
||||
{637E1D65-7F1C-476B-AD0A-30B295DF5414}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{637E1D65-7F1C-476B-AD0A-30B295DF5414}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{637E1D65-7F1C-476B-AD0A-30B295DF5414}.Release|x64.ActiveCfg = Release|Any CPU
|
||||
{637E1D65-7F1C-476B-AD0A-30B295DF5414}.Release|x64.Build.0 = Release|Any CPU
|
||||
{637E1D65-7F1C-476B-AD0A-30B295DF5414}.Release|x86.ActiveCfg = Release|Any CPU
|
||||
{637E1D65-7F1C-476B-AD0A-30B295DF5414}.Release|x86.Build.0 = Release|Any CPU
|
||||
EndGlobalSection
|
||||
GlobalSection(NestedProjects) = preSolution
|
||||
{69E22952-302D-4C56-B2BE-7C086EB05C79} = {0ED05384-4F64-44BA-A4AA-47519DA26E8C}
|
||||
{637E1D65-7F1C-476B-AD0A-30B295DF5414} = {0ED05384-4F64-44BA-A4AA-47519DA26E8C}
|
||||
EndGlobalSection
|
||||
EndGlobal
|
||||
|
|
@ -0,0 +1,3 @@
|
|||
@ECHO OFF
|
||||
SET RepoRoot="%~dp0..\.."
|
||||
%RepoRoot%\build.cmd -LockFile %RepoRoot%\korebuild-lock.txt -Path %~dp0 %*
|
||||
|
|
@ -0,0 +1,7 @@
|
|||
#!/usr/bin/env bash
|
||||
|
||||
set -euo pipefail
|
||||
|
||||
DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
|
||||
repo_root="$DIR/../.."
|
||||
"$repo_root/build.sh" --path "$DIR" --lockfile "$repo_root/korebuild-lock.txt" "$@"
|
||||
|
|
@ -0,0 +1,13 @@
|
|||
<Project>
|
||||
<PropertyGroup>
|
||||
<MSBuildAllProjects>$(MSBuildAllProjects);$(MSBuildThisFileFullPath)</MSBuildAllProjects>
|
||||
</PropertyGroup>
|
||||
|
||||
<PropertyGroup Label="Package Versions">
|
||||
<InternalAspNetCoreSdkPackageVersion>2.2.0-preview2-20181004.6</InternalAspNetCoreSdkPackageVersion>
|
||||
<MicrosoftAspNetCoreAzureAppServicesSiteExtension21PackageVersion>2.1.1-rtm-31076</MicrosoftAspNetCoreAzureAppServicesSiteExtension21PackageVersion>
|
||||
<MicrosoftAspNetCoreAzureAppServicesSiteExtension22PackageVersion>2.2.0-rtm-35515</MicrosoftAspNetCoreAzureAppServicesSiteExtension22PackageVersion>
|
||||
<MicrosoftWebXdtPackageVersion>1.4.0</MicrosoftWebXdtPackageVersion>
|
||||
</PropertyGroup>
|
||||
|
||||
</Project>
|
||||
|
|
@ -0,0 +1,8 @@
|
|||
<Project>
|
||||
|
||||
|
||||
<ItemGroup>
|
||||
<ExcludeFromPack Include="$(RepositoryRoot)src\Microsoft.Web.Xdt.Extensions\*.csproj" />
|
||||
</ItemGroup>
|
||||
|
||||
</Project>
|
||||
|
|
@ -0,0 +1,11 @@
|
|||
<Project>
|
||||
|
||||
<PropertyGroup>
|
||||
<RestoreSources>
|
||||
$(RestoreSources);
|
||||
https://api.nuget.org/v3/index.json;
|
||||
https://dotnet.myget.org/F/aspnetcore-dev/api/v3/index.json;
|
||||
</RestoreSources>
|
||||
</PropertyGroup>
|
||||
|
||||
</Project>
|
||||
|
|
@ -0,0 +1,8 @@
|
|||
{
|
||||
"sdk": {
|
||||
"version": "2.2.100-preview2-009404"
|
||||
},
|
||||
"msbuild-sdks": {
|
||||
"Internal.AspNetCore.Sdk": "2.2.0-preview2-20181011.10"
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,7 @@
|
|||
<Project>
|
||||
<Import Project="..\Directory.Build.props" />
|
||||
|
||||
<ItemGroup>
|
||||
<PackageReference Include="Internal.AspNetCore.Sdk" PrivateAssets="All" Version="$(InternalAspNetCoreSdkPackageVersion)" />
|
||||
</ItemGroup>
|
||||
</Project>
|
||||
|
|
@ -0,0 +1,50 @@
|
|||
<Project Sdk="Microsoft.NET.Sdk">
|
||||
|
||||
<PropertyGroup>
|
||||
<title>ASP.NET Core Logging Extensions</title>
|
||||
<Description>This extension enables additional functionality for ASP.NET Core on Azure WebSites, such as enabling Azure logging.</Description>
|
||||
<TargetFramework>net461</TargetFramework>
|
||||
<GenerateDocumentationFile>false</GenerateDocumentationFile>
|
||||
<PackageTags>aspnet;logging;aspnetcore;AzureSiteExtension;keyvault;configuration;dataprotection</PackageTags>
|
||||
<GenerateDocumentationFile>false</GenerateDocumentationFile>
|
||||
<PackageType>AzureSiteExtension</PackageType>
|
||||
<NoPackageAnalysis>true</NoPackageAnalysis>
|
||||
<IncludeBuildOutput>false</IncludeBuildOutput>
|
||||
<IncludeSymbols>false</IncludeSymbols>
|
||||
<IncludeSource>false</IncludeSource>
|
||||
<ContentTargetFolders>content</ContentTargetFolders>
|
||||
</PropertyGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<PackageReference Include="Microsoft.AspNetCore.AzureAppServices.SiteExtension.2.1" Version="$(MicrosoftAspNetCoreAzureAppServicesSiteExtension21PackageVersion)" PrivateAssets="All" />
|
||||
<PackageReference Include="Microsoft.AspNetCore.AzureAppServices.SiteExtension.2.2" Version="$(MicrosoftAspNetCoreAzureAppServicesSiteExtension22PackageVersion)" PrivateAssets="All" />
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<Content Include="applicationHost.xdt" />
|
||||
<Content Include="scmApplicationHost.xdt" />
|
||||
<Content Include="bin\$(Configuration)\$(TargetFramework)\Microsoft.Web.Xdt.Extensions.dll" PackagePath="content" />
|
||||
<SignedPackageFile
|
||||
Include="bin\$(Configuration)\$(TargetFramework)\Microsoft.Web.Xdt.Extensions.dll"
|
||||
PackagePath="content/Microsoft.Web.Xdt.Extensions.dll"
|
||||
Certificate="$(AssemblySigningCertName)" Visible="false" />
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<ProjectReference Include="..\..\src\Microsoft.Web.Xdt.Extensions\Microsoft.Web.Xdt.Extensions.csproj" PrivateAssets="All" />
|
||||
</ItemGroup>
|
||||
|
||||
<Target Name="AddContent" BeforeTargets="_GetPackageFiles;GetSignedPackageFiles">
|
||||
|
||||
<ItemGroup>
|
||||
<ContentFilesToPack Include="$(NugetPackageRoot)\%(PackageReference.Identity)\%(PackageReference.Version)\content\**\*.*" />
|
||||
<!-- Temporarily skip the common files -->
|
||||
<FilteredContentFilesToPack Include="@(ContentFilesToPack)" Condition="'%(RecursiveDir)' != ''" />
|
||||
|
||||
<None Include="@(FilteredContentFilesToPack)" PackagePath="content\%(RecursiveDir)%(Filename)%(Extension)" Pack="true" />
|
||||
<ExcludePackageFileFromSigning Include="@(FilteredContentFilesToPack)" PackagePath="content\%(RecursiveDir)%(Filename)%(Extension)" />
|
||||
</ItemGroup>
|
||||
|
||||
</Target>
|
||||
|
||||
</Project>
|
||||
|
|
@ -0,0 +1,16 @@
|
|||
<?xml version="1.0"?>
|
||||
<configuration xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform">
|
||||
|
||||
<xdt:Import path="%XDT_EXTENSIONPATH%\Microsoft.Web.Xdt.Extensions.dll"
|
||||
namespace="Microsoft.Web.Xdt.Extensions" />
|
||||
|
||||
<system.webServer xdt:Transform="InsertIfMissing">
|
||||
<runtime xdt:Transform="InsertIfMissing" >
|
||||
<environmentVariables xdt:Transform="InsertIfMissing">
|
||||
<add name="DOTNET_ADDITIONAL_DEPS" value="%XDT_EXTENSIONPATH%\additionalDeps\Microsoft.AspNetCore.AzureAppServices.HostingStartup\;%ProgramFiles%\dotnet\additionalDeps\Microsoft.AspNetCore.AzureAppServices.HostingStartup\" xdt:Locator="Match(name)" xdt:Transform="InsertOrAppendAttribute(Attribute='value')" />
|
||||
<add name="DOTNET_SHARED_STORE" value="%XDT_EXTENSIONPATH%\store" xdt:Locator="Match(name)" xdt:Transform="InsertOrAppendAttribute(Attribute='value')" />
|
||||
<add name="ASPNETCORE_HOSTINGSTARTUPASSEMBLIES" value="Microsoft.AspNetCore.AzureAppServices.HostingStartup" xdt:Locator="Match(name)" xdt:Transform="InsertOrAppendAttribute(Attribute='value')" />
|
||||
</environmentVariables>
|
||||
</runtime>
|
||||
</system.webServer>
|
||||
</configuration>
|
||||
|
|
@ -0,0 +1,5 @@
|
|||
<?xml version="1.0"?>
|
||||
<configuration xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform">
|
||||
<!-- This file exists to prevent applicationHost.xdt from being applied to scm host that runs
|
||||
other dotnet processes (dotnet build, csc etc. )-->
|
||||
</configuration>
|
||||
|
|
@ -0,0 +1,144 @@
|
|||
// Copyright (c) .NET Foundation. All rights reserved.
|
||||
// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
|
||||
|
||||
using System;
|
||||
using System.Xml;
|
||||
using Microsoft.Web.XmlTransform;
|
||||
|
||||
namespace Microsoft.Web.Xdt.Extensions
|
||||
{
|
||||
/// <summary>
|
||||
/// Insert or append to the given attribute
|
||||
/// </summary>
|
||||
public class InsertOrAppendAttribute : Transform
|
||||
{
|
||||
/// <summary>
|
||||
///
|
||||
/// </summary>
|
||||
public InsertOrAppendAttribute()
|
||||
: base(TransformFlags.UseParentAsTargetNode, MissingTargetMessage.Error)
|
||||
{
|
||||
}
|
||||
|
||||
private string _attributeName;
|
||||
|
||||
/// <summary>
|
||||
///
|
||||
/// </summary>
|
||||
protected string AttributeName
|
||||
{
|
||||
get
|
||||
{
|
||||
if (_attributeName == null)
|
||||
{
|
||||
_attributeName = GetArgumentValue("Attribute");
|
||||
}
|
||||
return _attributeName;
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Extracts a value from the arguments provided
|
||||
/// </summary>
|
||||
/// <param name="name"></param>
|
||||
/// <returns></returns>
|
||||
protected string GetArgumentValue(string name)
|
||||
{
|
||||
if (string.IsNullOrEmpty(name))
|
||||
{
|
||||
throw new ArgumentNullException(nameof(name));
|
||||
}
|
||||
|
||||
string result = null;
|
||||
if (Arguments != null && Arguments.Count > 0)
|
||||
{
|
||||
foreach (var arg in Arguments)
|
||||
{
|
||||
if (!string.IsNullOrEmpty(arg))
|
||||
{
|
||||
var trimmedArg = arg.Trim();
|
||||
if (trimmedArg.StartsWith(name, StringComparison.OrdinalIgnoreCase))
|
||||
{
|
||||
var start = arg.IndexOf('\'');
|
||||
var last = arg.LastIndexOf('\'');
|
||||
if (start <= 0 || last <= 0 || last <= start)
|
||||
{
|
||||
throw new ArgumentException("Expected two ['] characters");
|
||||
}
|
||||
|
||||
var value = trimmedArg.Substring(start, last - start);
|
||||
|
||||
// remove any leading or trailing '
|
||||
value = value.Trim().TrimStart('\'').TrimStart('\'');
|
||||
result = value;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
///
|
||||
/// </summary>
|
||||
protected override void Apply()
|
||||
{
|
||||
if (TargetChildNodes == null || TargetChildNodes.Count == 0)
|
||||
{
|
||||
TargetNode.AppendChild(TransformNode);
|
||||
}
|
||||
else
|
||||
{
|
||||
XmlAttribute transformAtt = null;
|
||||
|
||||
foreach (XmlAttribute att in TransformNode.Attributes)
|
||||
{
|
||||
if (string.Equals(att.Name, AttributeName, StringComparison.OrdinalIgnoreCase))
|
||||
{
|
||||
transformAtt = att;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if (transformAtt == null)
|
||||
{
|
||||
throw new InvalidOperationException("No target attribute to append");
|
||||
}
|
||||
|
||||
foreach (XmlNode targetNode in TargetChildNodes)
|
||||
{
|
||||
var foundAttribute = false;
|
||||
foreach (XmlAttribute att in targetNode.Attributes)
|
||||
{
|
||||
if (string.Equals(att.Name, AttributeName, StringComparison.OrdinalIgnoreCase))
|
||||
{
|
||||
foundAttribute = true;
|
||||
if (string.IsNullOrEmpty(att.Value))
|
||||
{
|
||||
att.Value = transformAtt.Value;
|
||||
}
|
||||
else
|
||||
{
|
||||
// TODO: This doesn't compose well with insertOrAppend being applied on the TargetNode.
|
||||
// The target node is created with the children it has in the transform, which means we would
|
||||
// duplicate the value here.
|
||||
if (att.Value == transformAtt.Value)
|
||||
{
|
||||
return;
|
||||
}
|
||||
att.Value = $"{att.Value};{transformAtt.Value}";
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (!foundAttribute)
|
||||
{
|
||||
var attribute = targetNode.OwnerDocument.CreateAttribute(AttributeName);
|
||||
attribute.Value = transformAtt.Value;
|
||||
targetNode.Attributes.Append(attribute);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,14 @@
|
|||
<Project Sdk="Microsoft.NET.Sdk">
|
||||
|
||||
<PropertyGroup>
|
||||
<Description>Additional functionality for Xdt transforms.</Description>
|
||||
<TargetFramework>net461</TargetFramework>
|
||||
<GenerateDocumentationFile>true</GenerateDocumentationFile>
|
||||
<PackageTags>xdt</PackageTags>
|
||||
</PropertyGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<PackageReference Include="Microsoft.Web.Xdt" Version="$(MicrosoftWebXdtPackageVersion)" />
|
||||
</ItemGroup>
|
||||
|
||||
</Project>
|
||||
|
|
@ -0,0 +1,53 @@
|
|||
{
|
||||
"AssemblyIdentity": "Microsoft.Web.Xdt.Extensions, Version=2.1.1.0, Culture=neutral, PublicKeyToken=adb9793829ddae60",
|
||||
"Types": [
|
||||
{
|
||||
"Name": "Microsoft.Web.Xdt.Extensions.InsertOrAppendAttribute",
|
||||
"Visibility": "Public",
|
||||
"Kind": "Class",
|
||||
"BaseType": "Microsoft.Web.XmlTransform.Transform",
|
||||
"ImplementedInterfaces": [],
|
||||
"Members": [
|
||||
{
|
||||
"Kind": "Method",
|
||||
"Name": "get_AttributeName",
|
||||
"Parameters": [],
|
||||
"ReturnType": "System.String",
|
||||
"Visibility": "Protected",
|
||||
"GenericParameter": []
|
||||
},
|
||||
{
|
||||
"Kind": "Method",
|
||||
"Name": "GetArgumentValue",
|
||||
"Parameters": [
|
||||
{
|
||||
"Name": "name",
|
||||
"Type": "System.String"
|
||||
}
|
||||
],
|
||||
"ReturnType": "System.String",
|
||||
"Visibility": "Protected",
|
||||
"GenericParameter": []
|
||||
},
|
||||
{
|
||||
"Kind": "Method",
|
||||
"Name": "Apply",
|
||||
"Parameters": [],
|
||||
"ReturnType": "System.Void",
|
||||
"Virtual": true,
|
||||
"Override": true,
|
||||
"Visibility": "Protected",
|
||||
"GenericParameter": []
|
||||
},
|
||||
{
|
||||
"Kind": "Constructor",
|
||||
"Name": ".ctor",
|
||||
"Parameters": [],
|
||||
"Visibility": "Public",
|
||||
"GenericParameter": []
|
||||
}
|
||||
],
|
||||
"GenericParameters": []
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
@ -0,0 +1,12 @@
|
|||
<Project>
|
||||
<PropertyGroup>
|
||||
<VersionPrefix>2.2.0</VersionPrefix>
|
||||
<VersionSuffix>rtm</VersionSuffix>
|
||||
<PackageVersion Condition="'$(IsFinalBuild)' == 'true' AND '$(VersionSuffix)' == 'rtm' ">$(VersionPrefix)</PackageVersion>
|
||||
<PackageVersion Condition="'$(IsFinalBuild)' == 'true' AND '$(VersionSuffix)' != 'rtm' ">$(VersionPrefix)-$(VersionSuffix)-final</PackageVersion>
|
||||
<BuildNumber Condition="'$(BuildNumber)' == ''">t000</BuildNumber>
|
||||
<FeatureBranchVersionPrefix Condition="'$(FeatureBranchVersionPrefix)' == ''">a-</FeatureBranchVersionPrefix>
|
||||
<VersionSuffix Condition="'$(VersionSuffix)' != '' And '$(FeatureBranchVersionSuffix)' != ''">$(FeatureBranchVersionPrefix)$(VersionSuffix)-$([System.Text.RegularExpressions.Regex]::Replace('$(FeatureBranchVersionSuffix)', '[^\w-]', '-'))</VersionSuffix>
|
||||
<VersionSuffix Condition="'$(VersionSuffix)' != '' And '$(BuildNumber)' != ''">$(VersionSuffix)-$(BuildNumber)</VersionSuffix>
|
||||
</PropertyGroup>
|
||||
</Project>
|
||||
Loading…
Reference in New Issue