Remove obsolete publishing targets and tasks (#7248)
This commit is contained in:
parent
cc3b1641e3
commit
0bf063ec2c
|
|
@ -0,0 +1,37 @@
|
|||
<Project Sdk="Microsoft.NET.Sdk">
|
||||
|
||||
<PropertyGroup>
|
||||
<!-- TFM doesn't matter. These settings are required to make NuGet happy so we can restore required MSBuild packages. -->
|
||||
<TargetFramework>netcoreapp3.0</TargetFramework>
|
||||
<DisableImplicitFrameworkReferences>true</DisableImplicitFrameworkReferences>
|
||||
<ManifestsPath>$(ArtifactsDir)manifests\</ManifestsPath>
|
||||
<DisablePackageReferenceRestrictions>true</DisablePackageReferenceRestrictions>
|
||||
</PropertyGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<PackageReference Include="Microsoft.DotNet.Build.Tasks.Feed" Version="2.2.0-beta.19061.6" />
|
||||
</ItemGroup>
|
||||
|
||||
<Target Name="GetFilesToPublish">
|
||||
<ItemGroup>
|
||||
<PackageToPublish Include="$(ArtifactsShippingPackagesDir)*.nupkg" />
|
||||
<PackageToPublish Include="$(ArtifactsNonShippingPackagesDir)*.nupkg">
|
||||
<!-- 'NonShipping' packages are used to transfer bits to partner teams, and should not be used by customers. -->
|
||||
<ManifestArtifactData>NonShipping=true</ManifestArtifactData>
|
||||
</PackageToPublish>
|
||||
</ItemGroup>
|
||||
</Target>
|
||||
|
||||
<Target Name="GenerateBuildAssetManifest"
|
||||
DependsOnTargets="GetFilesToPublish;ResolveRepositoryBranch;ResolveCommitHash">
|
||||
|
||||
<GenerateBuildManifest
|
||||
Artifacts="@(PackageToPublish)"
|
||||
OutputPath="$(ManifestsPath)aspnetcore-$(TargetRuntimeIdentifier)-$(PackageVersion).xml"
|
||||
BuildId="$(PackageVersion)"
|
||||
RepoUri="$(RepositoryUrl)"
|
||||
RepoBranch="$(RepositoryBranch)"
|
||||
RepoCommit="$(RepositoryCommit)" />
|
||||
</Target>
|
||||
|
||||
</Project>
|
||||
|
|
@ -1,22 +0,0 @@
|
|||
<Project>
|
||||
|
||||
<Target Name="RestorePublishProject">
|
||||
<MSBuild Projects="$(MSBuildThisFileDirectory)publish\Publish.csproj"
|
||||
Targets="Restore"
|
||||
Properties="$(BuildProperties);KoreBuildTasksDll=$(KoreBuildTasksDll);__DummyTarget=Restore" />
|
||||
</Target>
|
||||
|
||||
<Target Name="GenerateBuildAssetManifest" DependsOnTargets="RestorePublishProject">
|
||||
<!-- Generate build manifests without building them remotely. These manifests are used by Maestro and the Build Asset Registry to flow dependencies to other repos. -->
|
||||
<MSBuild Projects="$(MSBuildThisFileDirectory)publish\Publish.csproj"
|
||||
Targets="GenerateBuildAssetManifest"
|
||||
Properties="$(BuildProperties);KoreBuildTasksDll=$(KoreBuildTasksDll);__DummyTarget=GenerateBuildAssetManifest" />
|
||||
</Target>
|
||||
|
||||
<Target Name="Publish" DependsOnTargets="RestorePublishProject">
|
||||
<MSBuild Projects="$(MSBuildThisFileDirectory)publish\Publish.csproj"
|
||||
Targets="Publish"
|
||||
Properties="$(BuildProperties);KoreBuildTasksDll=$(KoreBuildTasksDll);__DummyTarget=Publish" />
|
||||
</Target>
|
||||
|
||||
</Project>
|
||||
|
|
@ -1,182 +0,0 @@
|
|||
<Project>
|
||||
|
||||
<Import Project="Sdk.props" Sdk="Microsoft.NET.Sdk" />
|
||||
|
||||
<PropertyGroup>
|
||||
<!-- TFM doesn't matter. These settings are required to make NuGet happy so we can restore required MSBuild packages. -->
|
||||
<TargetFramework>netcoreapp3.0</TargetFramework>
|
||||
<DisableImplicitFrameworkReferences>true</DisableImplicitFrameworkReferences>
|
||||
<ManifestsPath>$(ArtifactsDir)manifests\</ManifestsPath>
|
||||
<MaestroApiEndpoint Condition="'$(MaestroApiEndpoint)' == ''">https://maestro-prod.westus2.cloudapp.azure.com</MaestroApiEndpoint>
|
||||
<DisablePackageReferenceRestrictions>true</DisablePackageReferenceRestrictions>
|
||||
</PropertyGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<PackageReference Include="Microsoft.DotNet.Build.Tasks.Feed" Version="2.2.0-beta.19061.6" />
|
||||
<PackageReference Include="Microsoft.DotNet.Maestro.Tasks" Version="1.1.0-beta.19065.2" />
|
||||
</ItemGroup>
|
||||
|
||||
<Import Project="Sdk.targets" Sdk="Microsoft.NET.Sdk" />
|
||||
|
||||
<PropertyGroup>
|
||||
<PublishDependsOn>
|
||||
GetFilesToPublish;
|
||||
GenerateBuildAssetManifest;
|
||||
PublishToAzureFeed;
|
||||
PublishToMyGet;
|
||||
PublishToBuildAssetRegistry;
|
||||
</PublishDependsOn>
|
||||
</PropertyGroup>
|
||||
|
||||
<Target Name="Publish" DependsOnTargets="$(PublishDependsOn)" />
|
||||
|
||||
<Target Name="GetFilesToPublish">
|
||||
<ItemGroup>
|
||||
<!-- Installer output files with specific metadata. -->
|
||||
<_FilesToPublish Include="$(InstallersOutputPath)*.txt">
|
||||
<ContentType>text/plain</ContentType>
|
||||
</_FilesToPublish>
|
||||
|
||||
<_FilesToPublish Include="$(InstallersOutputPath)*.version">
|
||||
<ContentType>text/plain</ContentType>
|
||||
<CacheControl>no-cache, no-store, must-revalidate</CacheControl>
|
||||
</_FilesToPublish>
|
||||
|
||||
<_FilesToPublish Include="$(InstallersOutputPath)*.svg">
|
||||
<CacheControl>no-cache, no-store, must-revalidate</CacheControl>
|
||||
<ContentType>image/svg+xml</ContentType>
|
||||
</_FilesToPublish>
|
||||
|
||||
<!-- All other installer files. -->
|
||||
<_FilesToPublish Include="$(InstallersOutputPath)*" Exclude="@(_FilesToPublish)" />
|
||||
|
||||
<!-- Java packages -->
|
||||
<_FilesToPublish Include="$(ArtifactsShippingPackagesDir)*.jar;$(ArtifactsShippingPackagesDir)*.pom">
|
||||
<BlobBasePath>aspnetcore/jar/$(PackageVersion)/</BlobBasePath>
|
||||
</_FilesToPublish>
|
||||
|
||||
<!-- NPM packages -->
|
||||
<NpmPackageToPublish Include="$(ArtifactsShippingPackagesDir)*.tgz">
|
||||
<BlobBasePath>aspnetcore/npm/$(PackageVersion)/</BlobBasePath>
|
||||
</NpmPackageToPublish>
|
||||
<_FilesToPublish Include="@(NpmPackageToPublish)" />
|
||||
|
||||
<!--
|
||||
Transform the intermediate item group into the final group.
|
||||
You can't use globbing _and_ set metadata using FileName and Extension at the same time. MSBuild quirks are fun.
|
||||
-->
|
||||
<FilesToPublish Include="@(_FilesToPublish)">
|
||||
<RelativeBlobPath Condition="'%(_FilesToPublish.BlobBasePath)' != ''">%(_FilesToPublish.BlobBasePath)%(_FilesToPublish.FileName)%(_FilesToPublish.Extension)</RelativeBlobPath>
|
||||
<RelativeBlobPath Condition="'%(_FilesToPublish.BlobBasePath)' == ''">aspnetcore/Runtime/$(PackageVersion)/%(_FilesToPublish.FileName)%(_FilesToPublish.Extension)</RelativeBlobPath>
|
||||
</FilesToPublish>
|
||||
<_FilesToPublish Remove="@(_FilesToPublish)" />
|
||||
|
||||
<PackageToPublish Include="$(ArtifactsShippingPackagesDir)*.symbols.nupkg" IsSymbolsPackage="true" />
|
||||
<PackageToPublish Include="$(ArtifactsShippingPackagesDir)*.nupkg" Exclude="@(PackageToPublish)" />
|
||||
</ItemGroup>
|
||||
|
||||
<!--
|
||||
'Internal' packages are used to transfer bits to partner teams, and should not be used by customers.
|
||||
Publishing these can be disabled.
|
||||
-->
|
||||
<ItemGroup Condition=" '$(PublishInternalPackages)' != 'false' ">
|
||||
<PackageToPublish Include="$(ArtifactsNonShippingPackagesDir)*.symbols.nupkg" IsSymbolsPackage="true">
|
||||
<ManifestArtifactData>NonShipping=true</ManifestArtifactData>
|
||||
</PackageToPublish>
|
||||
<PackageToPublish Include="$(ArtifactsNonShippingPackagesDir)*.nupkg" Exclude="@(PackageToPublish)">
|
||||
<ManifestArtifactData>NonShipping=true</ManifestArtifactData>
|
||||
</PackageToPublish>
|
||||
</ItemGroup>
|
||||
|
||||
<Error Text="Missing required metadata 'RelativeBlobPath' for FilesToPublish: @(FilesToPublish)" Condition="'@(FilesToPublish)' != '' AND '%(RelativeBlobPath)' == ''" />
|
||||
</Target>
|
||||
|
||||
<UsingTask TaskName="KoreBuild.Tasks.PushNuGetPackages" AssemblyFile="$(KoreBuildTasksDll)" />
|
||||
|
||||
<Target Name="PublishToMyGet"
|
||||
DependsOnTargets="GetFilesToPublish"
|
||||
Condition="'$(PublishToMyget)' == 'true'">
|
||||
|
||||
<Error Text="Missing required property: PublishMyGetFeedUrl" Condition=" '$(PublishMyGetFeedUrl)' == '' "/>
|
||||
<Error Text="Missing required property: PublishMyGetSymbolsFeedUrl" Condition=" '$(PublishMyGetSymbolsFeedUrl)' == '' "/>
|
||||
<Error Text="Missing required property: PublishMyGetNpmRegistryUrl" Condition=" '$(PublishMyGetNpmRegistryUrl)' == '' "/>
|
||||
<Error Text="Missing required property: PublishMyGetFeedKey" Condition=" '$(PublishMyGetFeedKey)' == '' "/>
|
||||
|
||||
<Error Text="No packages found to publish" Condition="@(PackageToPublish->Count()) == 0" />
|
||||
|
||||
<PushNuGetPackages Condition="'%(PackageToPublish.IsSymbolsPackage)' != 'true' AND @(PackageToPublish->Count()) != 0"
|
||||
Packages="@(PackageToPublish)"
|
||||
TimeoutSeconds="300"
|
||||
Feed="$(PublishMyGetFeedUrl)"
|
||||
ApiKey="$(PublishMyGetFeedKey)" />
|
||||
|
||||
<PushNuGetPackages Condition="'%(PackageToPublish.IsSymbolsPackage)' == 'true' AND @(PackageToPublish->Count()) != 0"
|
||||
Packages="@(PackageToPublish)"
|
||||
TimeoutSeconds="300"
|
||||
Feed="$(PublishMyGetSymbolsFeedUrl)"
|
||||
ApiKey="$(PublishMyGetFeedKey)" />
|
||||
|
||||
<PropertyGroup>
|
||||
<AuthTokenSetting>$(PublishMyGetNpmRegistryUrl.Replace("https:", "")):_authToken</AuthTokenSetting>
|
||||
</PropertyGroup>
|
||||
|
||||
<Message Condition=" @(NpmPackageToPublish->Count()) != 0 "
|
||||
Text="Skipping NPM publish because there are no npm packages to publish."
|
||||
Importance="high" />
|
||||
|
||||
<Exec Condition=" @(NpmPackageToPublish->Count()) != 0 "
|
||||
Command="npm config set "$(AuthTokenSetting)" $(PublishMyGetFeedKey)"
|
||||
StandardOutputImportance="Normal" />
|
||||
|
||||
<Exec Condition=" @(NpmPackageToPublish->Count()) != 0 "
|
||||
Command="npm publish --registry "$(PublishMyGetNpmRegistryUrl)" "%(NpmPackageToPublish.Identity)""
|
||||
ContinueOnError="true">
|
||||
<Output TaskParameter="ExitCode" ItemName="_NpmExitCodes" />
|
||||
</Exec>
|
||||
|
||||
<Exec Condition=" @(NpmPackageToPublish->Count()) != 0 "
|
||||
Command="npm config delete $(AuthTokenSetting)"
|
||||
StandardOutputImportance="Normal" />
|
||||
|
||||
<Error Text="Publishing npm modules failed" Condition=" @(NpmPackageToPublish->Count()) != 0 AND %(_NpmExitCodes.Identity) != 0" />
|
||||
</Target>
|
||||
|
||||
<Target Name="PublishToAzureFeed"
|
||||
DependsOnTargets="GetFilesToPublish"
|
||||
Condition="'$(PublishToAzureFeed)' == 'true'">
|
||||
|
||||
<RepoTasks.PublishToAzureBlob
|
||||
AccountName="$(AzureAccountName)"
|
||||
SharedAccessToken="$(AzureSharedAccessToken)"
|
||||
ContainerName="$(AzureContainerName)"
|
||||
Files="@(FilesToPublish)" />
|
||||
</Target>
|
||||
|
||||
<Target Name="GenerateBuildAssetManifest"
|
||||
DependsOnTargets="GetFilesToPublish;ResolveRepositoryBranch;ResolveCommitHash">
|
||||
|
||||
<GenerateBuildManifest
|
||||
Artifacts="@(PackageToPublish);@(FilesToPublish)"
|
||||
OutputPath="$(ManifestsPath)aspnetcore-$(TargetRuntimeIdentifier)-$(PackageVersion).xml"
|
||||
BuildId="$(PackageVersion)"
|
||||
RepoUri="$(RepositoryUrl)"
|
||||
RepoBranch="$(RepositoryBranch)"
|
||||
RepoCommit="$(RepositoryCommit)" />
|
||||
</Target>
|
||||
|
||||
<UsingTask TaskName="PushMetadataToBuildAssetRegistry" AssemblyFile="$(PkgMicrosoft_DotNet_Maestro_Tasks)\tools\netcoreapp2.1\Microsoft.DotNet.Maestro.Tasks.dll"/>
|
||||
|
||||
<Target Name="PublishToBuildAssetRegistry"
|
||||
DependsOnTargets="GenerateBuildAssetManifest"
|
||||
Condition="'$(PublishToBuildAssetRegistry)' == 'true'">
|
||||
|
||||
<Error Text="Missing required property: MaestroApiEndpoint" Condition=" '$(MaestroApiEndpoint)' == '' "/>
|
||||
<Error Text="Missing required property: BuildAssetRegistryToken" Condition=" '$(BuildAssetRegistryToken)' == '' "/>
|
||||
|
||||
<PushMetadataToBuildAssetRegistry
|
||||
ManifestsPath="$(ManifestsPath)"
|
||||
BuildAssetRegistryToken="$(BuildAssetRegistryToken)"
|
||||
MaestroApiEndpoint="$(MaestroApiEndpoint)" />
|
||||
</Target>
|
||||
|
||||
</Project>
|
||||
|
|
@ -2,7 +2,6 @@
|
|||
<Import Project="AzureIntegration.targets" />
|
||||
<Import Project="SharedFx.targets" />
|
||||
<Import Project="CodeSign.targets" />
|
||||
<Import Project="Publish.targets" />
|
||||
<Import Project="..\eng\Workarounds.targets" />
|
||||
|
||||
<PropertyGroup>
|
||||
|
|
@ -101,4 +100,15 @@
|
|||
FrameworkOnlyPackages="@(SharedFrameworkOnlyPackage)" />
|
||||
</Target>
|
||||
|
||||
<Target Name="GenerateBuildAssetManifest">
|
||||
<!-- Generate build manifests. These manifests are used by Maestro and the Build Asset Registry to flow dependencies to other repos. -->
|
||||
<MSBuild Projects="$(MSBuildThisFileDirectory)Maestro\Maestro.csproj"
|
||||
Targets="Restore"
|
||||
Properties="$(BuildProperties);__DummyTarget=Restore" />
|
||||
|
||||
<MSBuild Projects="$(MSBuildThisFileDirectory)Maestro\Maestro.csproj"
|
||||
Targets="GenerateBuildAssetManifest"
|
||||
Properties="$(BuildProperties);__DummyTarget=GenerateBuildAssetManifest" />
|
||||
</Target>
|
||||
|
||||
</Project>
|
||||
|
|
|
|||
|
|
@ -1,146 +0,0 @@
|
|||
// 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.
|
||||
|
||||
#if BUILD_AZ_TASKS
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.IO;
|
||||
using System.Linq;
|
||||
using System.Threading;
|
||||
using System.Threading.Tasks;
|
||||
using Microsoft.Build.Framework;
|
||||
using Microsoft.WindowsAzure.Storage;
|
||||
using Microsoft.WindowsAzure.Storage.Blob;
|
||||
|
||||
namespace RepoTasks
|
||||
{
|
||||
/// <summary>
|
||||
/// Publish files to an Azure storage blob
|
||||
/// </summary>
|
||||
public class PublishToAzureBlob : Microsoft.Build.Utilities.Task, ICancelableTask
|
||||
{
|
||||
private CancellationTokenSource _cts = new CancellationTokenSource();
|
||||
|
||||
/// <summary>
|
||||
/// The files to publish.
|
||||
/// </summary>
|
||||
[Required]
|
||||
public ITaskItem[] Files { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// The Azure blob storage account name.
|
||||
/// </summary>
|
||||
[Required]
|
||||
public string AccountName { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// The SAS token used to write to Azure.
|
||||
/// </summary>
|
||||
[Required]
|
||||
public string SharedAccessToken { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// The Azure blob storage container name
|
||||
/// </summary>
|
||||
[Required]
|
||||
public string ContainerName { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// The maximum number of parallel pushes.
|
||||
/// </summary>
|
||||
public int MaxParallelism { get; set; } = 8;
|
||||
|
||||
public void Cancel() => _cts.Cancel();
|
||||
|
||||
public override bool Execute()
|
||||
=> ExecuteAsync().Result;
|
||||
|
||||
private async Task<bool> ExecuteAsync()
|
||||
{
|
||||
var connectionString = $"BlobEndpoint=https://{AccountName}.blob.core.windows.net;SharedAccessSignature={SharedAccessToken}";
|
||||
|
||||
var account = CloudStorageAccount.Parse(connectionString);
|
||||
var client = account.CreateCloudBlobClient();
|
||||
var container = client.GetContainerReference(ContainerName);
|
||||
|
||||
var ctx = new OperationContext();
|
||||
var tasks = new List<Task>();
|
||||
|
||||
using (var throttler = new SemaphoreSlim(MaxParallelism))
|
||||
{
|
||||
foreach (var item in Files)
|
||||
{
|
||||
_cts.Token.ThrowIfCancellationRequested();
|
||||
await throttler.WaitAsync( _cts.Token);
|
||||
tasks.Add(
|
||||
Task.Run(async () =>
|
||||
{
|
||||
try
|
||||
{
|
||||
await PushFileAsync(ctx, container, item, _cts.Token);
|
||||
}
|
||||
finally
|
||||
{
|
||||
throttler.Release();
|
||||
}
|
||||
}));
|
||||
}
|
||||
|
||||
await Task.WhenAll(tasks);
|
||||
}
|
||||
|
||||
return !Log.HasLoggedErrors;
|
||||
}
|
||||
|
||||
private async Task PushFileAsync(OperationContext ctx, CloudBlobContainer container, ITaskItem item, CancellationToken cancellationToken)
|
||||
{
|
||||
cancellationToken.ThrowIfCancellationRequested();
|
||||
|
||||
// normalize slashes
|
||||
var dest = item.GetMetadata("RelativeBlobPath")
|
||||
.Replace('\\', '/')
|
||||
.Replace("//", "/");
|
||||
var contentType = item.GetMetadata("ContentType");
|
||||
var cacheControl = item.GetMetadata("CacheControl");
|
||||
|
||||
if (string.IsNullOrEmpty(dest))
|
||||
{
|
||||
Log.LogError($"Item {item.ItemSpec} is missing required metadata 'RelativeBlobPath'");
|
||||
return;
|
||||
}
|
||||
|
||||
var blob = container.GetBlockBlobReference(dest);
|
||||
|
||||
if (!string.IsNullOrEmpty(cacheControl))
|
||||
{
|
||||
blob.Properties.CacheControl = cacheControl;
|
||||
}
|
||||
|
||||
if (!string.IsNullOrEmpty(contentType))
|
||||
{
|
||||
blob.Properties.ContentType = contentType;
|
||||
}
|
||||
|
||||
Log.LogMessage(MessageImportance.High, $"Beginning push of {item.ItemSpec} to https://{AccountName}.blob.core.windows.net/{ContainerName}/{dest}");
|
||||
|
||||
var accessCondition = bool.TryParse(item.GetMetadata("Overwrite"), out var overwrite) && overwrite
|
||||
? AccessCondition.GenerateEmptyCondition()
|
||||
: AccessCondition.GenerateIfNotExistsCondition();
|
||||
|
||||
try
|
||||
{
|
||||
await blob.UploadFromFileAsync(item.ItemSpec, accessCondition, new BlobRequestOptions(), ctx, cancellationToken);
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
Log.LogError($"Error publishing {item.ItemSpec}: {ex}");
|
||||
return;
|
||||
}
|
||||
finally
|
||||
{
|
||||
Log.LogMessage(MessageImportance.High, $"Done publishing {item.ItemSpec} to https://{AccountName}.blob.core.windows.net/{ContainerName}/{dest}");
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
|
@ -5,7 +5,6 @@
|
|||
<TargetFramework Condition="'$(MSBuildRuntimeType)' == 'Core' ">netcoreapp2.2</TargetFramework>
|
||||
<TargetFramework Condition="'$(MSBuildRuntimeType)' != 'Core' ">net461</TargetFramework>
|
||||
<DefineConstants Condition="'$(BuildInstallers)' == 'true' AND '$(TargetOsName)' == 'win'">$(DefineConstants);BUILD_MSI_TASKS</DefineConstants>
|
||||
<DefineConstants Condition="'$(PublishToAzureFeed)' == 'true'">$(DefineConstants);BUILD_AZ_TASKS</DefineConstants>
|
||||
<DisablePackageReferenceRestrictions>true</DisablePackageReferenceRestrictions>
|
||||
</PropertyGroup>
|
||||
|
||||
|
|
@ -13,7 +12,6 @@
|
|||
<PackageReference Remove="Internal.AspNetCore.Sdk" />
|
||||
<PackageReference Include="NuGet.Build.Tasks" Version="4.9.1" />
|
||||
<PackageReference Include="Microsoft.Extensions.DependencyModel" Version="2.1.0" />
|
||||
<PackageReference Include="WindowsAzure.Storage" Version="8.7.0" Condition="'$(PublishToAzureFeed)' == 'true'" />
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup Condition="'$(BuildInstallers)' == 'true' AND '$(TargetOsName)' == 'win'">
|
||||
|
|
|
|||
|
|
@ -7,6 +7,5 @@
|
|||
<UsingTask TaskName="RepoTasks.GenerateGuid" AssemblyFile="$(_RepoTaskAssembly)" />
|
||||
<UsingTask TaskName="RepoTasks.GetMsiProperty" AssemblyFile="$(_RepoTaskAssembly)" />
|
||||
<UsingTask TaskName="RepoTasks.GenerateSharedFrameworkMetadataFiles" AssemblyFile="$(_RepoTaskAssembly)" />
|
||||
<UsingTask TaskName="RepoTasks.PublishToAzureBlob" AssemblyFile="$(_RepoTaskAssembly)" Condition="'$(PublishToAzureFeed)' == 'true'" />
|
||||
<UsingTask TaskName="RepoTasks.RemoveSharedFrameworkDependencies" AssemblyFile="$(_RepoTaskAssembly)" />
|
||||
</Project>
|
||||
|
|
|
|||
Loading…
Reference in New Issue