Transition to .NETCore 3.0 for BuildXL (#298)

* Switch to .NetCoreApp3.0 as main .NETCore build target
This commit is contained in:
Kristijan Šimić 2019-05-14 16:54:06 +02:00 коммит произвёл GitHub
Родитель fff7cf0bf4
Коммит dd841725e5
Не найден ключ, соответствующий данной подписи
Идентификатор ключа GPG: 4AEE18F83AFDEB23
86 изменённых файлов: 558 добавлений и 304 удалений

Просмотреть файл

@ -17,6 +17,8 @@ export const framework : Shared.Framework = (() => {
return importFrom("Sdk.Managed.Frameworks.Net472").framework;
case "netcoreapp2.2":
return importFrom("Sdk.Managed.Frameworks.NetCoreApp2.2").framework;
case "netcoreapp3.0":
return importFrom("Sdk.Managed.Frameworks.NetCoreApp3.0").framework;
case "netstandard2.0":
return importFrom("Sdk.Managed.Frameworks.NetStandard2.0").framework;
default:

Просмотреть файл

@ -0,0 +1,56 @@
import {Artifact, Cmd, Transformer} from "Sdk.Transformers";
namespace Helpers
{
export declare const qualifier : {};
function getToolTemplate() : Transformer.ExecuteArgumentsComposible {
const host = Context.getCurrentHost();
Contract.assert(host.cpuArchitecture === "x64", "The current DotNetCore Runtime package only has x64 version of Node. Ensure this runs on a 64-bit OS -or- update PowerShell.Core package to have other architectures embedded and fix this logic");
let executable : RelativePath = undefined;
let pkgContents : StaticDirectory = undefined;
switch (host.os) {
case "win":
pkgContents = importFrom("DotNet-Runtime.win-x64").extracted;
executable = r`dotnet.exe`;
break;
case "macOS":
pkgContents = importFrom("DotNet-Runtime.osx-x64").extracted;
executable = r`dotnet`;
break;
case "unix":
pkgContents = importFrom("DotNet-Runtime.linux-x64").extracted;
executable = r`dotnet`;
break;
default:
Contract.fail(`The current DotNetCore Runtime package doesn't support the current target runtime: ${host.os}. Esure you run on a supported OS -or- update the DotNet-Runtime package to have the version embdded.`);
}
return {
tool: {
exe: pkgContents.getFile(executable),
dependsOnCurrentHostOSDirectories: true,
},
dependencies: [
pkgContents,
]
};
}
const toolTemplate = getToolTemplate();
@@public
export function wrapInDotNetExeForCurrentOs(args: Transformer.ExecuteArguments) : Transformer.ExecuteArguments {
return Object.merge<Transformer.ExecuteArguments>(
args,
toolTemplate,
{
arguments: [
Cmd.argument(Artifact.input(args.tool.exe))
].prependWhenMerged()
});
}
}

Просмотреть файл

@ -5,6 +5,7 @@ module({
name: "Sdk.Managed.Frameworks",
nameResolutionSemantics: NameResolutionSemantics.implicitProjectReferences,
projects: [
f`frameworks.dsc`
f`frameworks.dsc`,
f`helpers.dsc`
]
});

Просмотреть файл

@ -21,15 +21,15 @@ function ignoredAssembly(file: File): boolean {
}
const windowsRuntimeFiles = [
...importFrom("runtime.win-x64.Microsoft.NETCore.App").Contents.all.getContent().filter(f => f.extension === a`.dll` && !ignoredAssembly(f)),
...importFrom("runtime.win-x64.Microsoft.NETCore.DotNetHostResolver").Contents.all.getContent().filter(f => f.extension === a`.dll`),
...importFrom("runtime.win-x64.Microsoft.NETCore.DotNetHostPolicy").Contents.all.getContent().filter(f => f.extension === a`.dll`),
...importFrom("runtime.win-x64.Microsoft.NETCore.App.220").Contents.all.getContent().filter(f => f.extension === a`.dll` && !ignoredAssembly(f)),
...importFrom("runtime.win-x64.Microsoft.NETCore.DotNetHostResolver.220").Contents.all.getContent().filter(f => f.extension === a`.dll`),
...importFrom("runtime.win-x64.Microsoft.NETCore.DotNetHostPolicy.220").Contents.all.getContent().filter(f => f.extension === a`.dll`),
];
const osxRuntimeFiles = [
...importFrom("runtime.osx-x64.Microsoft.NETCore.App").Contents.all.getContent().filter(f => macOSRuntimeExtensions(f) && !ignoredAssembly(f)),
...importFrom("runtime.osx-x64.Microsoft.NETCore.DotNetHostResolver").Contents.all.getContent().filter(f => macOSRuntimeExtensions(f)),
...importFrom("runtime.osx-x64.Microsoft.NETCore.DotNetHostPolicy").Contents.all.getContent().filter(f => macOSRuntimeExtensions(f)),
...importFrom("runtime.osx-x64.Microsoft.NETCore.App.220").Contents.all.getContent().filter(f => macOSRuntimeExtensions(f) && !ignoredAssembly(f)),
...importFrom("runtime.osx-x64.Microsoft.NETCore.DotNetHostResolver.220").Contents.all.getContent().filter(f => macOSRuntimeExtensions(f)),
...importFrom("runtime.osx-x64.Microsoft.NETCore.DotNetHostPolicy.220").Contents.all.getContent().filter(f => macOSRuntimeExtensions(f)),
];
@@public
@ -66,58 +66,8 @@ export const framework : Shared.Framework = {
};
function createDefaultAssemblies() : Shared.Assembly[] {
const pkgContents = importFrom("Microsoft.NETCore.App").withQualifier({targetFramework: "netcoreapp2.2"}).Contents.all;
const pkgContents = importFrom("Microsoft.NETCore.App.211").withQualifier({targetFramework: "netcoreapp2.2"}).Contents.all;
const netcoreAppPackageContents = pkgContents.contents;
const dlls = netcoreAppPackageContents.filter(file => file.hasExtension && file.extension === a`.dll`);
return dlls.map(file => Shared.Factory.createAssembly(pkgContents, file, "netcoreapp2.2", [], true));
}
function getToolTemplate() : Transformer.ExecuteArgumentsComposible {
const host = Context.getCurrentHost();
Contract.assert(host.cpuArchitecture === "x64", "The current DotNetCore Runtime package only has x64 version of Node. Ensure this runs on a 64-bit OS -or- update PowerShell.Core package to have other architectures embedded and fix this logic");
let executable : RelativePath = undefined;
let pkgContents : StaticDirectory = undefined;
switch (host.os) {
case "win":
pkgContents = importFrom("DotNet-Runtime.win-x64").extracted;
executable = r`dotnet.exe`;
break;
case "macOS":
pkgContents = importFrom("DotNet-Runtime.osx-x64").extracted;
executable = r`dotnet`;
break;
case "unix":
pkgContents = importFrom("DotNet-Runtime.linux-x64").extracted;
executable = r`dotnet`;
break;
default:
Contract.fail(`The current DotNetCore Runtime package doesn't support the current target runtime: ${host.os}. Esure you run on a supported OS -or- update the DotNet-Runtime package to have the version embdded.`);
}
return {
tool: {
exe: pkgContents.getFile(executable),
dependsOnCurrentHostOSDirectories: true,
},
dependencies: [
pkgContents,
]
};
}
const toolTemplate = getToolTemplate();
@@public
export function wrapInDotNetExeForCurrentOs(args: Transformer.ExecuteArguments) : Transformer.ExecuteArguments {
return Object.merge<Transformer.ExecuteArguments>(
args,
toolTemplate,
{
arguments: [
Cmd.argument(Artifact.input(args.tool.exe))
].prependWhenMerged()
});
}

Просмотреть файл

@ -0,0 +1,10 @@
// Copyright (c) Microsoft. All rights reserved.
// Licensed under the MIT license. See LICENSE file in the project root for full license information.
module({
name: "Sdk.Managed.Frameworks.NetCoreApp3.0",
nameResolutionSemantics: NameResolutionSemantics.implicitProjectReferences,
projects: [
f`netcoreapp3.0.dsc`,
]
});

Просмотреть файл

@ -0,0 +1,73 @@
// Copyright (c) Microsoft. All rights reserved.
// Licensed under the MIT license. See LICENSE file in the project root for full license information.
import {Artifact, Cmd, Transformer} from "Sdk.Transformers";
import * as Shared from "Sdk.Managed.Shared";
import * as Deployment from "Sdk.Deployment";
import * as MacOS from "Sdk.MacOS";
export declare const qualifier: {targetFramework: "netcoreapp3.0"};
const defaultAssemblies: Shared.Assembly[] = createDefaultAssemblies();
function macOSRuntimeExtensions(file: File): boolean {
return file.extension === a`.dylib` || file.extension === a`.a` || file.extension === a`.dll`;
}
function ignoredAssembly(file: File): boolean {
// We skip deploying those files from the .NET Core package as we need those very assemblies from their dedicated package
// to compile our platform abstraction layer, which depends on datatypes present only in the dedicated packages
return file.name === a`System.Security.AccessControl.dll` || file.name === a`System.Security.Principal.Windows.dll`;
}
const windowsRuntimeFiles = [
...importFrom("runtime.win-x64.Microsoft.NETCore.App").Contents.all.getContent().filter(f => f.extension === a`.dll` && !ignoredAssembly(f)),
...importFrom("runtime.win-x64.Microsoft.NETCore.DotNetHostResolver").Contents.all.getContent().filter(f => f.extension === a`.dll`),
...importFrom("runtime.win-x64.Microsoft.NETCore.DotNetHostPolicy").Contents.all.getContent().filter(f => f.extension === a`.dll`),
];
const osxRuntimeFiles = [
...importFrom("runtime.osx-x64.Microsoft.NETCore.App").Contents.all.getContent().filter(f => macOSRuntimeExtensions(f) && !ignoredAssembly(f)),
...importFrom("runtime.osx-x64.Microsoft.NETCore.DotNetHostResolver").Contents.all.getContent().filter(f => macOSRuntimeExtensions(f)),
...importFrom("runtime.osx-x64.Microsoft.NETCore.DotNetHostPolicy").Contents.all.getContent().filter(f => macOSRuntimeExtensions(f)),
];
@@public
export function runtimeContentProvider(runtimeVersion: Shared.RuntimeVersion): File[] {
switch (runtimeVersion)
{
case "osx-x64":
return osxRuntimeFiles;
case "win-x64":
default:
return windowsRuntimeFiles;
}
}
@@public
export const framework : Shared.Framework = {
targetFramework: qualifier.targetFramework,
supportedRuntimeVersion: "v3.0",
assemblyInfoTargetFramework: ".NETCoreApp,Version=v3.0",
assemblyInfoFrameworkDisplayName: ".NET Core App",
standardReferences: defaultAssemblies,
requiresPortablePdb: true,
runtimeConfigStyle: "runtimeJson",
runtimeFrameworkName: "Microsoft.NETCore.App",
runtimeConfigVersion: "3.0.0-preview5-27626-15",
// Deployment style for .NET Core applications currently defaults to self-contained
applicationDeploymentStyle: "selfContained",
runtimeContentProvider: runtimeContentProvider,
};
function createDefaultAssemblies() : Shared.Assembly[] {
const pkgContents = importFrom("Microsoft.NETCore.App").withQualifier({targetFramework: "netcoreapp3.0"}).Contents.all;
const netcoreAppPackageContents = pkgContents.contents;
const dlls = netcoreAppPackageContents.filter(file => file.hasExtension && file.extension === a`.dll`);
return dlls.map(file => Shared.Factory.createAssembly(pkgContents, file, "netcoreapp3.0", [], true));
}

Просмотреть файл

@ -27,7 +27,7 @@ namespace Factory {
const xmlPath = binaryPath.changeExtension(".xml");
return {
binary: contents.getFile(binaryPath),
binary: contents.getFile(binaryPath),
pdb: contents.hasFile(pdbPath) ? contents.getFile(pdbPath) : undefined,
documentation: contents.hasFile(xmlPath) ? contents.getFile(xmlPath) : undefined,
deploy: Deployment.flattenBinary,

Просмотреть файл

@ -55,7 +55,7 @@ namespace TargetFrameworks {
export type DesktopTargetFrameworks = "net451" | "net461" | "net472";
@@public
export type CoreClrTargetFrameworks = "netcoreapp2.2";
export type CoreClrTargetFrameworks = "netcoreapp2.2" | "netcoreapp3.0";
@@public
export type StandardTargetFrameworks = "netstandard2.0";
@ -85,14 +85,14 @@ namespace TargetFrameworks {
export interface CurrentMachineQualifier extends Qualifier {
configuration: "debug" | "release";
// TODO: Netstandard should handle its application deploy in the framework itself and not rely on BuildXLSdk specifics
targetFramework: "net472" | "netcoreapp2.2",
targetFramework: "net472" | "netcoreapp3.0",
targetRuntime: "win-x64" | "osx-x64",
}
@@public
export const currentMachineQualifier : CurrentMachineQualifier = {
configuration: "release",
targetFramework: Context.getCurrentHost().os === "win" ? "net472" : "netcoreapp2.2",
targetFramework: Context.getCurrentHost().os === "win" ? "net472" : "netcoreapp3.0",
targetRuntime: Context.getCurrentHost().os === "win" ? "win-x64" : "osx-x64",
};
}

Просмотреть файл

@ -136,13 +136,16 @@ export function isBinary(item: Reference) : item is Binary {
@@public
export function isAssembly(item: Reference) : item is Assembly {
return item["name"] !== undefined &&
(item["compile"] !== undefined || item["runtime"] !== undefined) &&
item["contents"] === undefined; // Exclude nuget packages
(item["compile"] !== undefined || item["runtime"] !== undefined) &&
item["contents"] === undefined; // Exclude nuget packages
}
@@public
export function isManagedPackage(item: NugetPackage) : item is ManagedNugetPackage {
return item["compile"] !== undefined || item["runtime"] !== undefined || item["runtimeContent"] !== undefined || item["analyzers"] !== undefined;
export function isManagedPackage(item: any) : item is ManagedNugetPackage {
return item["compile"] !== undefined ||
item["runtime"] !== undefined ||
item["runtimeContent"] !== undefined ||
item["analyzers"] !== undefined;
}
@@public

Просмотреть файл

@ -24,7 +24,7 @@ export function runConsoleTest(args: TestRunArguments): Result {
let testDeployment = args.testDeployment;
const tool : Transformer.ToolDefinition = Managed.Factory.createTool({
exe: qualifier.targetFramework === "netcoreapp2.2"
exe: qualifier.targetFramework === "netcoreapp3.0"
? testDeployment.contents.getFile(r`xunit.console.dll`)
// Using xunit executable from different folders depending on the target framework.
// This allow us to actually to run tests targeting different frameworks.
@ -52,8 +52,8 @@ export function runConsoleTest(args: TestRunArguments): Result {
unsafe: args.untrackTestDirectory ? {untrackedScopes: [testDeployment.contents.root]} : undefined,
};
if (qualifier.targetFramework === "netcoreapp2.2") {
execArguments = importFrom("Sdk.Managed.Frameworks.NetCoreApp2.2").wrapInDotNetExeForCurrentOs(execArguments);
if (qualifier.targetFramework === "netcoreapp3.0") {
execArguments = importFrom("Sdk.Managed.Frameworks").Helpers.wrapInDotNetExeForCurrentOs(execArguments);
}
execArguments = Managed.TestHelpers.applyTestRunExecutionArgs(execArguments, args);

Просмотреть файл

@ -16,10 +16,8 @@ export const framework : Managed.TestFramework = {
name: "XUnit",
};
const xunitNet451Qualifier: {targetFramework: "net451"} = {targetFramework: "net451"};
@@public
export const xunitReferences : Managed.Reference[] = qualifier.targetFramework === "netcoreapp2.2"
export const xunitReferences : Managed.Reference[] = qualifier.targetFramework === "netcoreapp3.0"
? [
importFrom("xunit.assert").pkg,
importFrom("xunit.abstractions").pkg,
@ -42,7 +40,7 @@ function processArguments(args: Managed.TestArguments): Managed.TestArguments {
args);
}
const netStandardFramework = importFrom("Sdk.Managed.Frameworks.NetCoreApp2.2").withQualifier({targetFramework: "netcoreapp2.2"}).framework;
const netStandardFramework = importFrom("Sdk.Managed.Frameworks.NetCoreApp3.0").withQualifier({targetFramework: "netcoreapp3.0"}).framework;
const xunitNetStandardRuntimeConfigFiles: File[] = Managed.RuntimeConfigFiles.createFiles(
netStandardFramework,
"xunit.console",
@ -53,7 +51,7 @@ const xunitNetStandardRuntimeConfigFiles: File[] = Managed.RuntimeConfigFiles.cr
// For the DotNetCore run we need to copy a bunch more files:
function additionalRuntimeContent(args: Managed.TestArguments) : Deployment.DeployableItem[] {
return qualifier.targetFramework !== "netcoreapp2.2" ? [] : [
return qualifier.targetFramework !== "netcoreapp3.0" ? [] : [
// Unfortunately xUnit console runner comes as a precompiled assembly for .NET Core, we could either go and pacakge it
// into a self-contained deployment or treat it as a framework-dependent deployment as intended, let's do the latter
...(args.framework === netStandardFramework

Просмотреть файл

@ -2,6 +2,6 @@
<PropertyGroup>
<OutputType>Exe</OutputType>
<PlatformTarget>x64</PlatformTarget>
<TargetFramework>netcoreapp2.2</TargetFramework>
<TargetFramework>netcoreapp3.0</TargetFramework>
</PropertyGroup>
</Project>

Просмотреть файл

@ -127,6 +127,9 @@ export function compile(inputArgs: Arguments) : Result {
Cmd.options("/link:", Artifact.inputs(args.link)),
Cmd.options("/r:", Artifact.inputs(args.references && args.references.map(r => r.binary))),
...(args.aliasedReferences || []).map(r =>
Cmd.option(`/r:${r.alias}=`, Artifact.input(r.assembly.binary))),
Cmd.options("/lib:", Artifact.inputs(args.lib)),
Cmd.options("/analyzer:", Artifact.inputs(args.analyzers && args.analyzers.map(a => a.binary))),
Cmd.options("/additionalfile:", Artifact.inputs(args.additionalFiles || [])),
@ -157,7 +160,7 @@ export function compile(inputArgs: Arguments) : Result {
};
if (Context.getCurrentHost().os !== "win") {
cscExecuteArgs = importFrom("Sdk.Managed.Frameworks.NetCoreApp2.2").withQualifier({targetFramework: "netcoreapp2.2"}).wrapInDotNetExeForCurrentOs(cscExecuteArgs);
cscExecuteArgs = importFrom("Sdk.Managed.Frameworks").Helpers.wrapInDotNetExeForCurrentOs(cscExecuteArgs);
}
let executeResult = Transformer.execute(cscExecuteArgs);

Просмотреть файл

@ -45,8 +45,8 @@ export const linkTimeLibraries: File[] =
export const compileTimeReferences: File[] = [
...pkgContents.contents.filter(f => f.name.extension === a`.dll` && f.path.parent.name !== a`tools`),
...(isMacOS ? netcoreAppPkgContents.getFiles([
r`runtimes/osx-x64/lib/netcoreapp2.2/SOS.NETCore.dll`,
r`runtimes/osx-x64/lib/netcoreapp2.2/System.Runtime.InteropServices.WindowsRuntime.dll`
r`runtimes/osx-x64/lib/netcoreapp3.0/SOS.NETCore.dll`,
r`runtimes/osx-x64/lib/netcoreapp3.0/System.Runtime.InteropServices.WindowsRuntime.dll`
]) : [
// TODO: references for Windows
])

Просмотреть файл

@ -30,7 +30,7 @@ namespace ResGen.Lite
try
{
// TextWriter from System.IO has problems unifying versions from nuget and BCL between net461, net472 and netcoreapp2.2.
// TextWriter from System.IO has problems unifying versions from nuget and BCL between net461, net472 and netcoreapp3.0.
// So using ToFullString instead of WriteTo.
var sourceFileText = sourceFile.NormalizeWhitespace().ToFullString();
File.WriteAllText(filePath, sourceFileText, Encoding.UTF8);

Просмотреть файл

@ -2,8 +2,12 @@
// Licensed under the MIT license. See LICENSE file in the project root for full license information.
import * as Shared from "Sdk.Managed.Shared";
import * as Csc from "Sdk.Managed.Tools.Csc";
namespace Helpers {
export declare const qualifier : Shared.TargetFrameworks.All;
/**
* Helper method that computes the compile closure based on a set of references.
* This helper is for tools that gets a set of managed referneces and need to have the list of binaries that are used for compile.
@ -77,7 +81,7 @@ namespace Helpers {
return results.toArray();
}
function computeTransitiveReferenceClosureHelper(ref: Shared.Reference, results: MutableSet<Shared.Binary>, visitedReferences: MutableSet<Shared.Reference>, compile?: boolean) {
function computeTransitiveReferenceClosureHelper(ref: Shared.Reference, results: MutableSet<Shared.Binary>, visitedReferences: MutableSet<Shared.Reference>, compile?: boolean) {
if (visitedReferences.contains(ref))
{
return;
@ -132,4 +136,43 @@ namespace Helpers {
return results.toArray();
};
/** TODO: Unofortunately the System.Interactive.Async package exposes IAsyncEnumerable in its own System.Generic.Collection namespace,
/* colliding with .NETCore 3.0 implementation of the same name. For the time being (hopefully once the package maintainers updated their deps),
/* we explicitly create an aliased reference for the code that depends on this.
**/
@@public
export function patchReferencesForSystemInteractiveAsync(references: Shared.Reference[]) : Csc.Arguments {
const needsSystemInteractiveAsync = references.some(ref =>
Shared.isManagedPackage(ref) && !Shared.isAssembly(ref) && ref.name.contains("System.Interactive.Async"));
if (needsSystemInteractiveAsync) {
return <Csc.Arguments> {
aliasedReferences: [{
alias: "Async",
assembly: Shared.Factory.createBinary(
importFrom("System.Interactive.Async").pkg.contents,
r`lib/${tfmTargetForSystemInteractiveAsyncPackage()}/System.Interactive.Async.dll`
)
}]
};
}
return <Csc.Arguments> {};
}
function tfmTargetForSystemInteractiveAsyncPackage() : string {
switch (qualifier.targetFramework) {
case "net451":
return "net45";
case "net461":
case "net472":
return"net46";
case "netcoreapp3.0":
case "netstandard2.0":
default:
return "netstandard1.3";
}
}
}

Просмотреть файл

@ -186,16 +186,19 @@ export function assembly(args: Arguments, targetType: Csc.TargetType) : Result {
...(qualifier.targetFramework !== "net451" ? ["NET461Plus"] : []),
]
};
const references = [
...(args.references || []),
...framework.standardReferences,
];
if (args.tools && args.tools.csc) {
cscArgs = Object.merge(args.tools.csc, cscArgs);
}
let cscResult = Csc.compile(cscArgs);
cscArgs = Object.merge(Helpers.patchReferencesForSystemInteractiveAsync(references), cscArgs);
let references = [
...(args.references || []),
...framework.standardReferences,
];
let cscResult = Csc.compile(cscArgs);
let runtimeConfigFiles = undefined;
let runtimeContent = args.runtimeContent;

Просмотреть файл

@ -3,15 +3,7 @@
@@public
export const tplPackages = isDotNetCoreBuild ? [] : [importFrom("System.Threading.Tasks.Extensions").pkg];
/**
* Our nuget ingegration generates the wrong code for netcoreapp2.2 for System.Configuration.ConfigurationManager
* It should have added the netstandard2.0 version of the library for netcoreapp2.2 but because the config has
* a seperate group for netcoreapp2.2 our current logic mistakenly thinks there are no references to add for netcoreapp2.2
* We therefore temporary expose this assembly manually until we fix the nuget generation
**/
@@public
@@public
export const fluentAssertionsWorkaround = isDotNetCoreBuild
? [
importFrom("FluentAssertions").pkg,

Просмотреть файл

@ -97,7 +97,7 @@ export interface TestResult extends Managed.TestResult {
* Returns if the current qualifier is targeting .NET Core
*/
@@public
export const isDotNetCoreBuild : boolean = qualifier.targetFramework === "netcoreapp2.2" || qualifier.targetFramework === "netstandard2.0";
export const isDotNetCoreBuild : boolean = qualifier.targetFramework === "netcoreapp3.0" || qualifier.targetFramework === "netstandard2.0";
@@public
export const isFullFramework : boolean = qualifier.targetFramework === "net451" || qualifier.targetFramework === "net461" || qualifier.targetFramework === "net472";
@ -149,7 +149,7 @@ export const devKey = f`BuildXL.DevKey.snk`;
export const cacheRuleSet = f`BuildXl.Cache.ruleset`;
@@public
export const dotNetFramework = qualifier.targetFramework === "netcoreapp2.2"
export const dotNetFramework = isDotNetCoreBuild
? qualifier.targetRuntime
: qualifier.targetFramework;
@ -533,7 +533,7 @@ function processTestArguments(args: Managed.TestArguments) : Managed.TestArgumen
args = processArguments(args, "library");
let xunitSemaphoreLimit = Environment.hasVariable(envVarNamePrefix + "xunitSemaphoreCount") ? Environment.getNumberValue(envVarNamePrefix + "xunitSemaphoreCount") : 8;
let useQTest = Flags.isQTestEnabled && qualifier.targetFramework !== "netcoreapp2.2";
let useQTest = Flags.isQTestEnabled && qualifier.targetFramework !== "netcoreapp3.0";
let testFramework = args.testFramework || (useQTest ? QTest.getFramework(XUnit.framework) : XUnit.framework);
args = Object.merge<Managed.TestArguments>({

Просмотреть файл

@ -19,7 +19,7 @@ export interface FullFrameworkQualifier extends Qualifier {
@@public
export interface DefaultQualifier extends Qualifier {
configuration: "debug" | "release";
targetFramework: "net472" | "netcoreapp2.2";
targetFramework: "net472" | "netcoreapp3.0";
targetRuntime: "win-x64" | "osx-x64";
}
@ -29,7 +29,7 @@ export interface DefaultQualifier extends Qualifier {
@@public
export interface DefaultQualifierWithNet451 extends Qualifier {
configuration: "debug" | "release";
targetFramework: "net451" | "net461" | "net472" | "netcoreapp2.2";
targetFramework: "net451" | "net461" | "net472" | "netcoreapp3.0";
targetRuntime: "win-x64" | "osx-x64";
}
@ -40,7 +40,7 @@ export interface DefaultQualifierWithNet451 extends Qualifier {
@@public
export interface DefaultQualifierWithNet461 extends Qualifier {
configuration: "debug" | "release";
targetFramework: "net461" | "net472" | "netcoreapp2.2";
targetFramework: "net461" | "net472" | "netcoreapp3.0";
targetRuntime: "win-x64" | "osx-x64";
}
@ -50,13 +50,13 @@ export interface DefaultQualifierWithNet461 extends Qualifier {
@@public
export interface DefaultQualifierWithNet451AndNetStandard20 extends Qualifier {
configuration: "debug" | "release";
targetFramework: "net451" | "net461" | "net472" | "netcoreapp2.2" | "netstandard2.0";
targetFramework: "net451" | "net461" | "net472" | "netcoreapp3.0" | "netstandard2.0";
targetRuntime: "win-x64" | "osx-x64";
}
export interface AllSupportedQualifiers extends Qualifier {
configuration: "debug" | "release";
targetFramework: "net451" | "net461" | "net472" | "netcoreapp2.2" | "netstandard2.0";
targetFramework: "net451" | "net461" | "net472" | "netcoreapp3.0" | "netstandard2.0";
targetRuntime: "win-x64" | "osx-x64";
}
@ -72,7 +72,7 @@ export interface PlatformDependentQualifier extends Qualifier {
@@public
export interface NetCoreAppQualifier extends Qualifier {
configuration: "debug" | "release";
targetFramework: "netcoreapp2.2";
targetFramework: "netcoreapp3.0";
targetRuntime: "win-x64" | "osx-x64";
}

Просмотреть файл

@ -62,7 +62,7 @@ namespace StandaloneTest {
` description: "${assemblyName} [${qualifier.configuration}, ${dotNetFramework}]",`,
` testAssembly: f\`${def.assembly.name}\`,`,
` untracked: ${def.untracked},`,
` wrapInDotNet: ${qualifier.targetFramework === "netcoreapp2.2"},`,
` wrapInDotNet: ${$.isDotNetCoreBuild},`,
` untrackTestDirectory: ${def.untrackTestDirectory},`,
StandaloneTestUtils.generateArrayProperty("parallelCategories", def.parallelCategories, indent, StandaloneTestUtils.quoteString),
StandaloneTestUtils.generateArrayProperty("limitCategories", def.limitCategories, indent, StandaloneTestUtils.quoteString),

Просмотреть файл

@ -40,7 +40,7 @@ export const defaultArgs: Arguments = {
outputFile: undefined,
references: [],
sources: [],
targetFramework: "netcoreapp2.2",
targetFramework: "netcoreapp3.0",
targetRuntime: "win-x64",
};

Просмотреть файл

@ -4,7 +4,7 @@
import * as Managed from "Sdk.Managed";
import * as Deployment from "Sdk.Deployment";
export declare const qualifier: {targetFramework: "netcoreapp2.2" | "netstandard1.6" | "net472" | "net461" | "net451" | "net45" };
export declare const qualifier: {targetFramework: "netcoreapp3.0" | "netstandard1.6" | "net472" | "net461" | "net451" | "net45" };
const nativePackage = importFrom("RocksDbNative").pkg;
const managedPackage = importFrom("RocksDbSharpSigned").withQualifier({targetFramework: "net451"}).pkg;

Просмотреть файл

@ -4,7 +4,7 @@
import * as Deployment from "Sdk.Deployment";
export declare const qualifier : {
targetFramework: "netcoreapp2.2" | "net472" | "net461" | "net451",
targetFramework: "netcoreapp3.0" | "net472" | "net461" | "net451",
targetRuntime: "osx-x64" | "win-x64"
};
@ -14,7 +14,7 @@ const SQLiteCorePackageContents = importFrom("System.Data.SQLite.Core").Contents
function getInteropFile() : File {
switch (qualifier.targetFramework)
{
case "netcoreapp2.2":
case "netcoreapp3.0":
return SQLiteCorePackageContents.getFile(r`runtimes/${qualifier.targetRuntime}/native/netstandard2.0/SQLite.Interop.dll`);
case "net472":
return SQLiteCorePackageContents.getFile("build/net46/x64/SQLite.Interop.dll");

Просмотреть файл

@ -5,7 +5,7 @@ import * as Managed from "Sdk.Managed";
export declare const qualifier: {
configuration: "debug" | "release";
targetFramework: "netcoreapp2.2" | "netstandard2.0" | "netstandard1.1" | "net472" | "net462" | "net461" | "net46" | "net452" | "net451" | "net45";
targetFramework: "netcoreapp3.0" | "netstandard2.0" | "netstandard1.1" | "net472" | "net462" | "net461" | "net46" | "net452" | "net451" | "net45";
};
/** Configures which asserts should be checked at runtime. */

Просмотреть файл

@ -1,7 +1,7 @@
// Copyright (c) Microsoft. All rights reserved.
// Licensed under the MIT license. See LICENSE file in the project root for full license information.
export declare const qualifier: { targetFramework: "netcoreapp2.2" | "netstandard2.0" | "net451" | "net461" | "net472"};
export declare const qualifier: { targetFramework: "netcoreapp3.0" | "netstandard2.0" | "net451" | "net461" | "net472"};
import * as Managed from "Sdk.Managed";
@ -13,7 +13,7 @@ const package = importFrom("Microsoft.VisualStudio.LanguageServer.Protocol").wit
@@public
export const pkg: Managed.ManagedNugetPackage = (() => {
switch (qualifier.targetFramework) {
case "netcoreapp2.2":
case "netcoreapp3.0":
case "netstandard2.0":
case "net451":
case "net461":

Просмотреть файл

@ -68,7 +68,16 @@ namespace BuildXL
mi.OsVersion = OperatingSystemHelper.GetOSVersion();
mi.ProcessorName = OperatingSystemHelper.GetProcessorName();
mi.ProcessorIdentifier = OperatingSystemHelper.GetProcessorIdentifier();
mi.EnvironmentVersion = Environment.Version.ToString(4);
try {
mi.EnvironmentVersion = Environment.Version.ToString(4);
}
catch (ArgumentException)
{
// Fallback for .NETCore3.0, which currently reports "3.0.0" only
mi.EnvironmentVersion = Environment.Version.ToString();
}
mi.InstalledMemoryMB = OperatingSystemHelper.GetPhysicalMemorySize().MB;
char currentDrive = Environment.CurrentDirectory[0];

Просмотреть файл

@ -11,7 +11,7 @@ namespace IntegrationTest.BuildXL.Executable {
export declare const qualifier : {
configuration: "debug" | "release",
targetFramework: "net461" | "net472" | "netcoreapp2.2" | "netstandard2.0",
targetFramework: "net461" | "net472" | "netcoreapp3.0" | "netstandard2.0",
targetRuntime: "win-x64"
};

Просмотреть файл

@ -330,7 +330,9 @@ namespace BuildXL.Cache.ContentStore.Distributed.NuCache
}
}
#pragma warning disable AsyncFixer02
_heartbeatTimer?.Dispose();
#pragma warning restore AsyncFixer02
if (EventStore != null)
{

Просмотреть файл

@ -895,7 +895,9 @@ namespace ContentStoreTest.Distributed.Sessions
contentHash,
Token).ShouldBeSuccess();
#pragma warning disable AsyncFixer02
openStreamResult.Stream.Dispose();
#pragma warning restore AsyncFixer02
});
}

Просмотреть файл

@ -11,26 +11,28 @@ namespace GrpcTest {
},
skipTestRun: BuildXLSdk.restrictTestRunToDebugNet461OnWindows,
references: [
App.exe, // Tests launch the server, so this needs to be deployed.
Grpc.dll,
Test.dll,
Hashing.dll,
Library.dll,
Interfaces.dll,
UtilitiesCore.dll,
InterfacesTest.dll,
...addIf(BuildXLSdk.isFullFramework,
NetFx.System.Xml.dll,
NetFx.System.Xml.Linq.dll
),
...(BuildXLSdk.isDotNetCoreBuild
// TODO: This is to get a .Net Core build, but it may not pass tests
? [importFrom("System.Data.SQLite").withQualifier({targetFramework: "net461"}).pkg]
: [importFrom("System.Data.SQLite").pkg]
),
importFrom("Grpc.Core").pkg,
importFrom("Google.Protobuf").pkg,
Grpc.dll,
Interfaces.dll,
Hashing.dll,
UtilitiesCore.dll,
InterfacesTest.dll,
Library.dll,
Test.dll,
App.exe, // Tests launch the server, so this needs to be deployed.
...BuildXLSdk.fluentAssertionsWorkaround,
],
runtimeContent: [

Просмотреть файл

@ -4,6 +4,7 @@
import * as Deployment from "Sdk.Deployment";
import * as ILRepack from "Sdk.Managed.Tools.ILRepack";
import * as Shared from "Sdk.Managed.Shared";
import * as NetCoreApp from "Sdk.Managed.Frameworks.NetCoreApp3.0";
namespace Interfaces {
export declare const qualifier : BuildXLSdk.DefaultQualifierWithNet451AndNetStandard20;
@ -13,9 +14,8 @@ namespace Interfaces {
assemblyName: "BuildXL.Cache.ContentStore.Interfaces",
sources: globR(d`.`, "*.cs"),
references: [
UtilitiesCore.dll,
Hashing.dll,
UtilitiesCore.dll,
...addIfLazy(BuildXLSdk.isFullFramework, () => [
NetFx.System.Runtime.Serialization.dll,
NetFx.System.Xml.dll,
@ -31,6 +31,6 @@ namespace Interfaces {
"BuildXL.Cache.ContentStore",
"BuildXL.Cache.ContentStore.Distributed",
"BuildXL.Cache.ContentStore.Interfaces.Test",
],
]
});
}

Просмотреть файл

@ -1,6 +1,8 @@
// Copyright (c) Microsoft. All rights reserved.
// Licensed under the MIT license. See LICENSE file in the project root for full license information.
extern alias Async;
using System;
using System.Collections.Generic;
using System.Linq;
@ -9,6 +11,7 @@ using BuildXL.Cache.ContentStore.Interfaces.Results;
namespace BuildXL.Cache.ContentStore.Interfaces.Extensions
{
/// <summary>
/// Extension methods for Async Enumerables.
/// </summary>
@ -19,7 +22,7 @@ namespace BuildXL.Cache.ContentStore.Interfaces.Extensions
/// when there's a single call that produces the enumerable asynchronously followed by the items being enumerated.
/// The type is a resultbase to guarantee that the producer task will not throw.
/// </summary>
public static IAsyncEnumerable<T> CreateSingleProducerTaskAsyncEnumerable<T>(
public static Async::System.Collections.Generic.IAsyncEnumerable<T> CreateSingleProducerTaskAsyncEnumerable<T>(
Func<Task<IEnumerable<T>>> producerTaskFunc)
where T : ResultBase
{
@ -43,7 +46,7 @@ namespace BuildXL.Cache.ContentStore.Interfaces.Extensions
/// <summary>
/// Converts an enumerable of tasks to an async enumerable of task results
/// </summary>
public static IAsyncEnumerable<T> ToResultsAsyncEnumerable<T>(this IEnumerable<Task<T>> tasks)
public static Async::System.Collections.Generic.IAsyncEnumerable<T> ToResultsAsyncEnumerable<T>(this IEnumerable<Task<T>> tasks)
{
return AsyncEnumerable.CreateEnumerable(
() =>

Просмотреть файл

@ -1054,7 +1054,9 @@ namespace BuildXL.Cache.ContentStore.InterfacesTest.FileSystem
using (var stream = await FileSystem.OpenAsync(
source, FileAccess.Write, FileMode.CreateNew, ShareDelete))
{
#pragma warning disable AsyncFixer02
stream.Dispose();
#pragma warning restore AsyncFixer02
}
}
}

Просмотреть файл

@ -276,7 +276,9 @@ namespace BuildXL.Cache.ContentStore.InterfacesTest.Sessions
{
// Open should not pin this content, allowing eviction on the next put.
var r = await session.OpenStreamAsync(context, contentHash, Token).ShouldBeSuccess();
#pragma warning disable AsyncFixer02
r.Stream.Dispose();
#pragma warning restore AsyncFixer02
// This put should succeed after the first content is evicted.
await session.PutRandomAsync(context, ContentHashType, false, MaxSize, Token).ShouldBeSuccess();

Просмотреть файл

@ -28,7 +28,9 @@ namespace BuildXL.Cache.ContentStore.Extensions
if (dispose)
{
#pragma warning disable AsyncFixer02
stream.Dispose();
#pragma warning restore AsyncFixer02
}
return content.ToArray();

Просмотреть файл

@ -158,7 +158,10 @@ namespace ContentStoreTest.Performance.Sessions
results.All(r => r.Succeeded).Should().BeTrue();
results.All(r => r.Stream != null).Should().BeTrue();
results.ForEach(r => r.Stream.Dispose());
results.ForEach(r =>
#pragma warning disable AsyncFixer02
r.Stream.Dispose());
#pragma warning restore AsyncFixer02
}
private async Task OpenStreamAsync(
@ -251,7 +254,10 @@ namespace ContentStoreTest.Performance.Sessions
session => Task.FromResult(0),
session => PutStreamAsync(session, streams, results));
streams.ForEach(s => s.Dispose());
streams.ForEach(s =>
#pragma warning disable AsyncFixer02
s.Dispose());
#pragma warning restore AsyncFixer02
results.All(r => r.Succeeded).Should().BeTrue();
}

Просмотреть файл

@ -1,6 +1,8 @@
// Copyright (c) Microsoft. All rights reserved.
// Licensed under the MIT license. See LICENSE file in the project root for full license information.
extern alias Async;
using System;
using System.Collections.Generic;
using System.Diagnostics.ContractsLight;
@ -97,7 +99,7 @@ namespace BuildXL.Cache.MemoizationStore.Distributed.Sessions
}
/// <inheritdoc />
public IAsyncEnumerable<GetSelectorResult> GetSelectors(Context context, Fingerprint weakFingerprint, CancellationToken cts, UrgencyHint urgencyHint = UrgencyHint.Nominal)
public Async::System.Collections.Generic.IAsyncEnumerable<GetSelectorResult> GetSelectors(Context context, Fingerprint weakFingerprint, CancellationToken cts, UrgencyHint urgencyHint = UrgencyHint.Nominal)
{
return this.GetSelectorsAsAsyncEnumerable(context, weakFingerprint, cts, urgencyHint);
}

Просмотреть файл

@ -1,6 +1,8 @@
// Copyright (c) Microsoft. All rights reserved.
// Licensed under the MIT license. See LICENSE file in the project root for full license information.
extern alias Async;
using System;
using System.Collections.Generic;
using System.Diagnostics.CodeAnalysis;
@ -236,7 +238,7 @@ namespace BuildXL.Cache.MemoizationStore.Distributed.Stores
}
/// <inheritdoc />
public IAsyncEnumerable<StructResult<StrongFingerprint>> EnumerateStrongFingerprints(Context context)
public Async::System.Collections.Generic.IAsyncEnumerable<StructResult<StrongFingerprint>> EnumerateStrongFingerprints(Context context)
{
return _innerICache.EnumerateStrongFingerprints(context);
}

Просмотреть файл

@ -1,6 +1,8 @@
// Copyright (c) Microsoft. All rights reserved.
// Licensed under the MIT license. See LICENSE file in the project root for full license information.
extern alias Async;
using System;
using System.Collections.Generic;
using System.Threading.Tasks;
@ -43,6 +45,6 @@ namespace BuildXL.Cache.MemoizationStore.Interfaces.Caches
/// <summary>
/// Asynchronously enumerates the known strong fingerprints.
/// </summary>
IAsyncEnumerable<StructResult<StrongFingerprint>> EnumerateStrongFingerprints(Context context);
Async::System.Collections.Generic.IAsyncEnumerable<StructResult<StrongFingerprint>> EnumerateStrongFingerprints(Context context);
}
}

Просмотреть файл

@ -1,6 +1,8 @@
// Copyright (c) Microsoft. All rights reserved.
// Licensed under the MIT license. See LICENSE file in the project root for full license information.
extern alias Async;
using System.Collections.Generic;
using System.Threading;
using System.Threading.Tasks;
@ -20,7 +22,7 @@ namespace BuildXL.Cache.MemoizationStore.Interfaces.Sessions
/// <summary>
/// Gets known selectors for a given weak fingerprint.
/// </summary>
IAsyncEnumerable<GetSelectorResult> GetSelectors(
Async::System.Collections.Generic.IAsyncEnumerable<GetSelectorResult> GetSelectors(
Context context,
Fingerprint weakFingerprint,
CancellationToken cts,

Просмотреть файл

@ -1,6 +1,8 @@
// Copyright (c) Microsoft. All rights reserved.
// Licensed under the MIT license. See LICENSE file in the project root for full license information.
extern alias Async;
using System;
using System.Collections.Generic;
using System.Linq;
@ -54,7 +56,7 @@ namespace BuildXL.Cache.MemoizationStore.Interfaces.Sessions
/// <summary>
/// Enumerate known selectors for a given weak fingerprint.
/// </summary>
public static IAsyncEnumerable<GetSelectorResult> GetSelectorsAsAsyncEnumerable(
public static Async::System.Collections.Generic.IAsyncEnumerable<GetSelectorResult> GetSelectorsAsAsyncEnumerable(
this IReadOnlyMemoizationSessionWithLevelSelectors session,
Context context,
Fingerprint weakFingerprint,
@ -71,7 +73,7 @@ namespace BuildXL.Cache.MemoizationStore.Interfaces.Sessions
/// <summary>
/// Enumerates a given <paramref name="enumerable"/> until the predicate <paramref name="predicate"/> returns true.
/// </summary>
private static IAsyncEnumerable<T> StopAfter<T>(this IAsyncEnumerable<T> enumerable, Func<T, bool> predicate)
private static Async::System.Collections.Generic.IAsyncEnumerable<T> StopAfter<T>(this Async::System.Collections.Generic.IAsyncEnumerable<T> enumerable, Func<T, bool> predicate)
{
return AsyncEnumerable.CreateEnumerable(
() =>
@ -103,7 +105,7 @@ namespace BuildXL.Cache.MemoizationStore.Interfaces.Sessions
});
}
private static IAsyncEnumerable<GetSelectorResult> ToSelectorResults(Result<LevelSelectors> levelResult)
private static Async::System.Collections.Generic.IAsyncEnumerable<GetSelectorResult> ToSelectorResults(Result<LevelSelectors> levelResult)
{
IEnumerable<GetSelectorResult> selectorResults;
if (!levelResult)
@ -118,7 +120,7 @@ namespace BuildXL.Cache.MemoizationStore.Interfaces.Sessions
return selectorResults.ToAsyncEnumerable();
}
private static IAsyncEnumerable<Result<LevelSelectors>> GetLevelSelectorsEnumerableAsync(
private static Async::System.Collections.Generic.IAsyncEnumerable<Result<LevelSelectors>> GetLevelSelectorsEnumerableAsync(
this IReadOnlyMemoizationSessionWithLevelSelectors session,
Context context,
Fingerprint weakFingerprint,

Просмотреть файл

@ -1,6 +1,8 @@
// Copyright (c) Microsoft. All rights reserved.
// Licensed under the MIT license. See LICENSE file in the project root for full license information.
extern alias Async;
using System;
using System.Collections.Generic;
using System.Diagnostics.ContractsLight;
@ -180,7 +182,7 @@ namespace BuildXL.Cache.MemoizationStore.Interfaces.Sessions
/// <inheritdoc />
public IAsyncEnumerable<GetSelectorResult> GetSelectors(Context context, Fingerprint weakFingerprint, CancellationToken cts, UrgencyHint urgencyHint = UrgencyHint.Nominal)
public Async::System.Collections.Generic.IAsyncEnumerable<GetSelectorResult> GetSelectors(Context context, Fingerprint weakFingerprint, CancellationToken cts, UrgencyHint urgencyHint = UrgencyHint.Nominal)
{
return this.GetSelectorsAsAsyncEnumerable(context, weakFingerprint, cts, urgencyHint);
}

Просмотреть файл

@ -1,6 +1,8 @@
// Copyright (c) Microsoft. All rights reserved.
// Licensed under the MIT license. See LICENSE file in the project root for full license information.
extern alias Async;
using System.Collections.Generic;
using System.Threading.Tasks;
using BuildXL.Cache.ContentStore.Interfaces.Results;
@ -49,6 +51,6 @@ namespace BuildXL.Cache.MemoizationStore.Interfaces.Stores
/// <summary>
/// Asynchronously enumerates the known strong fingerprints.
/// </summary>
IAsyncEnumerable<StructResult<StrongFingerprint>> EnumerateStrongFingerprints(Context context);
Async::System.Collections.Generic.IAsyncEnumerable<StructResult<StrongFingerprint>> EnumerateStrongFingerprints(Context context);
}
}

Просмотреть файл

@ -1,6 +1,8 @@
// Copyright (c) Microsoft. All rights reserved.
// Licensed under the MIT license. See LICENSE file in the project root for full license information.
extern alias Async;
using System.Collections.Generic;
using System.IO;
using System.Threading;
@ -55,7 +57,7 @@ namespace BuildXL.Cache.MemoizationStore.InterfacesTest.Results
}
/// <inheritdoc />
public IAsyncEnumerable<GetSelectorResult> GetSelectors(Context context, Fingerprint weakFingerprint, CancellationToken cts, UrgencyHint urgencyHint = UrgencyHint.Nominal)
public Async::System.Collections.Generic.IAsyncEnumerable<GetSelectorResult> GetSelectors(Context context, Fingerprint weakFingerprint, CancellationToken cts, UrgencyHint urgencyHint = UrgencyHint.Nominal)
{
throw new System.NotImplementedException();
}

Просмотреть файл

@ -1,6 +1,8 @@
// Copyright (c) Microsoft. All rights reserved.
// Licensed under the MIT license. See LICENSE file in the project root for full license information.
extern alias Async;
using System;
using System.Collections.Generic;
using System.Linq;
@ -63,7 +65,7 @@ namespace BuildXL.Cache.MemoizationStore.Service
}
/// <nodoc />
public IAsyncEnumerable<StructResult<StrongFingerprint>> EnumerateStrongFingerprints(Context context)
public Async::System.Collections.Generic.IAsyncEnumerable<StructResult<StrongFingerprint>> EnumerateStrongFingerprints(Context context)
{
return AsyncEnumerable.Empty<StructResult<StrongFingerprint>>();
}

Просмотреть файл

@ -1,6 +1,8 @@
// Copyright (c) Microsoft. All rights reserved.
// Licensed under the MIT license. See LICENSE file in the project root for full license information.
extern alias Async;
using System;
using System.Collections.Generic;
using System.Runtime.CompilerServices;
@ -81,7 +83,7 @@ namespace BuildXL.Cache.MemoizationStore.Service
}
/// <inheritdoc />
public IAsyncEnumerable<GetSelectorResult> GetSelectors(Context context, Fingerprint weakFingerprint, CancellationToken cts, UrgencyHint urgencyHint = UrgencyHint.Nominal)
public Async::System.Collections.Generic.IAsyncEnumerable<GetSelectorResult> GetSelectors(Context context, Fingerprint weakFingerprint, CancellationToken cts, UrgencyHint urgencyHint = UrgencyHint.Nominal)
{
return this.GetSelectorsAsAsyncEnumerable(context, weakFingerprint, cts, urgencyHint);
}

Просмотреть файл

@ -1,6 +1,8 @@
// Copyright (c) Microsoft. All rights reserved.
// Licensed under the MIT license. See LICENSE file in the project root for full license information.
extern alias Async;
using System;
using System.Collections.Generic;
using System.Diagnostics.ContractsLight;
@ -311,7 +313,7 @@ namespace BuildXL.Cache.MemoizationStore.Sessions
}
/// <inheritdoc />
public IAsyncEnumerable<StructResult<StrongFingerprint>> EnumerateStrongFingerprints(Context context)
public Async::System.Collections.Generic.IAsyncEnumerable<StructResult<StrongFingerprint>> EnumerateStrongFingerprints(Context context)
{
return MemoizationStore.EnumerateStrongFingerprints(context);
}

Просмотреть файл

@ -1,6 +1,8 @@
// Copyright (c) Microsoft. All rights reserved.
// Licensed under the MIT license. See LICENSE file in the project root for full license information.
extern alias Async;
using System.Collections.Generic;
using System.Diagnostics.ContractsLight;
using System.Threading;
@ -42,7 +44,7 @@ namespace BuildXL.Cache.MemoizationStore.Sessions
public string Name { get; }
/// <inheritdoc />
public IAsyncEnumerable<GetSelectorResult> GetSelectors(Context context, Fingerprint weakFingerprint, CancellationToken cts, UrgencyHint urgencyHint = UrgencyHint.Nominal)
public Async::System.Collections.Generic.IAsyncEnumerable<GetSelectorResult> GetSelectors(Context context, Fingerprint weakFingerprint, CancellationToken cts, UrgencyHint urgencyHint = UrgencyHint.Nominal)
{
return this.GetSelectorsAsAsyncEnumerable(context, weakFingerprint, cts, urgencyHint);
}

Просмотреть файл

@ -1,6 +1,8 @@
// Copyright (c) Microsoft. All rights reserved.
// Licensed under the MIT license. See LICENSE file in the project root for full license information.
extern alias Async;
using System.Collections.Generic;
using System.Diagnostics.ContractsLight;
using System.Threading;
@ -42,7 +44,7 @@ namespace BuildXL.Cache.MemoizationStore.Sessions
public string Name { get; }
/// <inheritdoc />
public IAsyncEnumerable<GetSelectorResult> GetSelectors(Context context, Fingerprint weakFingerprint, CancellationToken cts, UrgencyHint urgencyHint = UrgencyHint.Nominal)
public Async::System.Collections.Generic.IAsyncEnumerable<GetSelectorResult> GetSelectors(Context context, Fingerprint weakFingerprint, CancellationToken cts, UrgencyHint urgencyHint = UrgencyHint.Nominal)
{
return this.GetSelectorsAsAsyncEnumerable(context, weakFingerprint, cts, urgencyHint);
}

Просмотреть файл

@ -1,6 +1,8 @@
// Copyright (c) Microsoft. All rights reserved.
// Licensed under the MIT license. See LICENSE file in the project root for full license information.
extern alias Async;
using System;
using System.Collections.Generic;
using System.Diagnostics;
@ -91,7 +93,7 @@ namespace BuildXL.Cache.MemoizationStore.Stores
/// <summary>
/// Enumerate known selectors for a given weak fingerprint.
/// </summary>
internal IAsyncEnumerable<GetSelectorResult> GetSelectors(Context context, Fingerprint weakFingerprint, CancellationToken cts)
internal Async::System.Collections.Generic.IAsyncEnumerable<GetSelectorResult> GetSelectors(Context context, Fingerprint weakFingerprint, CancellationToken cts)
{
var result = GetSelectorsCore(context, weakFingerprint, cts);
if (result)
@ -220,7 +222,7 @@ namespace BuildXL.Cache.MemoizationStore.Stores
}
/// <inheritdoc/>
public IAsyncEnumerable<StructResult<StrongFingerprint>> EnumerateStrongFingerprints(Context context)
public Async::System.Collections.Generic.IAsyncEnumerable<StructResult<StrongFingerprint>> EnumerateStrongFingerprints(Context context)
{
return _records.Select(record => new StructResult<StrongFingerprint>(record.StrongFingerprint)).ToAsyncEnumerable();
}

Просмотреть файл

@ -1,6 +1,8 @@
// Copyright (c) Microsoft. All rights reserved.
// Licensed under the MIT license. See LICENSE file in the project root for full license information.
extern alias Async;
using System;
using System.Collections.Generic;
using System.Data.SQLite;
@ -321,7 +323,7 @@ namespace BuildXL.Cache.MemoizationStore.Stores
}
/// <inheritdoc />
public IAsyncEnumerable<StructResult<StrongFingerprint>> EnumerateStrongFingerprints(Context context)
public Async::System.Collections.Generic.IAsyncEnumerable<StructResult<StrongFingerprint>> EnumerateStrongFingerprints(Context context)
{
context.Debug($"{nameof(SQLiteMemoizationStore)}.{nameof(EnumerateStrongFingerprints)}({context.Id})");
return AsyncEnumerable.CreateEnumerable(
@ -389,7 +391,7 @@ namespace BuildXL.Cache.MemoizationStore.Stores
/// <summary>
/// Enumerate known selectors for a given weak fingerprint.
/// </summary>
internal IAsyncEnumerable<GetSelectorResult> GetSelectors(Context context, Fingerprint weakFingerprint, CancellationToken cts)
internal Async::System.Collections.Generic.IAsyncEnumerable<GetSelectorResult> GetSelectors(Context context, Fingerprint weakFingerprint, CancellationToken cts)
{
return AsyncEnumerableExtensions.CreateSingleProducerTaskAsyncEnumerable(() => getSelectorsCore());

Просмотреть файл

@ -35,7 +35,6 @@ namespace Test {
Library.dll,
importFrom("BuildXL.Utilities").dll,
importFrom("System.Interactive.Async").pkg,
...BuildXLSdk.fluentAssertionsWorkaround,
],

Просмотреть файл

@ -1,6 +1,8 @@
// Copyright (c) Microsoft. All rights reserved.
// Licensed under the MIT license. See LICENSE file in the project root for full license information.
extern alias Async;
using System;
using System.Collections.Generic;
using System.IO;
@ -181,7 +183,7 @@ namespace BuildXL.Cache.MemoizationStore.Test.Sessions
{
return RunCacheAndSessionTestAsync(async (cache, session, context) =>
{
IAsyncEnumerable<GetSelectorResult> enumerator = session.GetSelectors(context, Fingerprint.Random(), Token);
Async::System.Collections.Generic.IAsyncEnumerable<GetSelectorResult> enumerator = session.GetSelectors(context, Fingerprint.Random(), Token);
await enumerator.ToList(CancellationToken.None);
long counter = await GetCounterValue("GetSelectorsCall", cache, context);
counter.Should().Be(1);

Просмотреть файл

@ -1,6 +1,8 @@
// Copyright (c) Microsoft. All rights reserved.
// Licensed under the MIT license. See LICENSE file in the project root for full license information.
extern alias Async;
using System;
using System.Collections.Generic;
using System.Diagnostics;
@ -295,7 +297,7 @@ namespace BuildXL.Cache.MemoizationStore.Test.Performance.Sessions
foreach (var weakFingerprint in weakFingerprints)
{
var getSelectorsEnumerator = session.GetSelectors(context, weakFingerprint, Token);
IAsyncEnumerator<GetSelectorResult> enumerator = getSelectorsEnumerator.GetEnumerator();
Async::System.Collections.Generic.IAsyncEnumerator<GetSelectorResult> enumerator = getSelectorsEnumerator.GetEnumerator();
while (await enumerator.MoveNext(CancellationToken.None))
{
GetSelectorResult result = enumerator.Current;

Просмотреть файл

@ -1,6 +1,8 @@
// Copyright (c) Microsoft. All rights reserved.
// Licensed under the MIT license. See LICENSE file in the project root for full license information.
extern alias Async;
using System;
using System.Collections.Generic;
using System.IO;
@ -190,7 +192,7 @@ namespace BuildXL.Cache.MemoizationStore.Test.Sessions
{
}
public IAsyncEnumerable<StructResult<StrongFingerprint>> EnumerateStrongFingerprints(Context context)
public Async::System.Collections.Generic.IAsyncEnumerable<StructResult<StrongFingerprint>> EnumerateStrongFingerprints(Context context)
{
throw new NotImplementedException();
}
@ -245,7 +247,7 @@ namespace BuildXL.Cache.MemoizationStore.Test.Sessions
}
/// <inheritdoc />
public IAsyncEnumerable<GetSelectorResult> GetSelectors(Context context, Fingerprint weakFingerprint, CancellationToken cts, UrgencyHint urgencyHint = UrgencyHint.Nominal)
public Async::System.Collections.Generic.IAsyncEnumerable<GetSelectorResult> GetSelectors(Context context, Fingerprint weakFingerprint, CancellationToken cts, UrgencyHint urgencyHint = UrgencyHint.Nominal)
{
return this.GetSelectorsAsAsyncEnumerable(context, weakFingerprint, cts, urgencyHint);
}

Просмотреть файл

@ -1,6 +1,8 @@
// Copyright (c) Microsoft. All rights reserved.
// Licensed under the MIT license. See LICENSE file in the project root for full license information.
extern alias Async;
using System;
using System.Collections.Generic;
using System.Threading;
@ -94,7 +96,7 @@ namespace BuildXL.Cache.MemoizationStore.Test.Sessions
public Task<GetStatsResult> GetStatsAsync(Context context) => _client.GetStatsAsync(context);
/// <inheritdoc />
public IAsyncEnumerable<StructResult<StrongFingerprint>> EnumerateStrongFingerprints(Context context) => _client.EnumerateStrongFingerprints(context);
public Async::System.Collections.Generic.IAsyncEnumerable<StructResult<StrongFingerprint>> EnumerateStrongFingerprints(Context context) => _client.EnumerateStrongFingerprints(context);
private static void SetThreadPoolSizes()
{

Просмотреть файл

@ -1,6 +1,8 @@
// Copyright (c) Microsoft. All rights reserved.
// Licensed under the MIT license. See LICENSE file in the project root for full license information.
extern alias Async;
using System;
using System.Collections.Generic;
using System.Diagnostics.CodeAnalysis;
@ -402,7 +404,7 @@ namespace BuildXL.Cache.MemoizationStore.Vsts
public Guid Id { get; private set; }
/// <inheritdoc />
public IAsyncEnumerable<StructResult<StrongFingerprint>> EnumerateStrongFingerprints(Context context)
public Async::System.Collections.Generic.IAsyncEnumerable<StructResult<StrongFingerprint>> EnumerateStrongFingerprints(Context context)
{
return AsyncEnumerable.Empty<StructResult<StrongFingerprint>>();
}

Просмотреть файл

@ -1,6 +1,8 @@
// Copyright (c) Microsoft. All rights reserved.
// Licensed under the MIT license. See LICENSE file in the project root for full license information.
extern alias Async;
using System;
using System.Collections.Generic;
using System.Diagnostics;
@ -380,7 +382,7 @@ namespace BuildXL.Cache.MemoizationStore.Vsts
public bool ShutdownStarted { get; private set; }
/// <inheritdoc />
public IAsyncEnumerable<GetSelectorResult> GetSelectors(Context context, Fingerprint weakFingerprint, CancellationToken cts, UrgencyHint urgencyHint = UrgencyHint.Nominal)
public Async::System.Collections.Generic.IAsyncEnumerable<GetSelectorResult> GetSelectors(Context context, Fingerprint weakFingerprint, CancellationToken cts, UrgencyHint urgencyHint = UrgencyHint.Nominal)
{
return this.GetSelectorsAsAsyncEnumerable(context, weakFingerprint, cts, urgencyHint);
}

Просмотреть файл

@ -1,9 +1,9 @@
{
"runtimeOptions": {
"tfm": "netcoreapp2.0",
"tfm": "netcoreapp3.0",
"framework": {
"name": "Microsoft.NETCore.App",
"version": "2.0.0"
"version": "3.0.0-preview5-27626-15"
}
}
}

Просмотреть файл

@ -105,7 +105,10 @@ namespace BuildXL.Cache.Analyzer
}
long length = possibleStream.Result.Length;
#pragma warning disable AsyncFixer02
possibleStream.Result.Dispose();
#pragma warning restore AsyncFixer02
return new Tuple<CasHash, long>(casHash, length);
}

Просмотреть файл

@ -14,7 +14,7 @@ namespace Deployment {
]
};
const frameworkSpecificPart = qualifier.targetFramework === "netcoreapp2.2"
const frameworkSpecificPart = BuildXLSdk.isDotNetCoreBuild
? qualifier.targetRuntime
: qualifier.targetFramework;

Просмотреть файл

@ -29,7 +29,7 @@ namespace Ide {
{
file: importFrom("BuildXL.Ide").withQualifier({
configuration: qualifier.configuration,
targetFramework:"netcoreapp2.2",
targetFramework:"netcoreapp3.0",
targetRuntime: "osx-x64"}
).LanguageService.Server.vsix,
targetFileName: a`BuildXL.vscode.osx.vsix`,

Просмотреть файл

@ -33,7 +33,7 @@ namespace NugetPackages {
id: `${packageNamePrefix}.win-x64`,
deployment: BuildXL.withQualifier({
configuration: qualifier.configuration,
targetFramework: "netcoreapp2.2",
targetFramework: "netcoreapp3.0",
targetRuntime: "win-x64"
}).deployment,
});
@ -42,7 +42,7 @@ namespace NugetPackages {
id: `${packageNamePrefix}.osx-x64`,
deployment: BuildXL.withQualifier({
configuration: qualifier.configuration,
targetFramework: "netcoreapp2.2",
targetFramework: "netcoreapp3.0",
targetRuntime: "osx-x64"
}).deployment,
});
@ -93,7 +93,7 @@ namespace NugetPackages {
id: `${packageNamePrefix}.Tools.SandboxExec.osx-x64`,
deployment: Tools.SandboxExec.withQualifier({
configuration: qualifier.configuration,
targetFramework: "netcoreapp2.2",
targetFramework: "netcoreapp3.0",
targetRuntime: "osx-x64"
}).deployment
});
@ -103,7 +103,7 @@ namespace NugetPackages {
id: `${packageNamePrefix}.Tools.Orchestrator.osx-x64`,
deployment: Tools.Orchestrator.withQualifier({
configuration: qualifier.configuration,
targetFramework: "netcoreapp2.2",
targetFramework: "netcoreapp3.0",
targetRuntime: "osx-x64"
}).deployment
});

Просмотреть файл

@ -6,7 +6,7 @@ import * as Deployment from "Sdk.Deployment";
import * as BuildXLSdk from "Sdk.BuildXL";
namespace Tests.Osx {
export declare const qualifier : {configuration: "debug" | "release", targetFramework: "netcoreapp2.2", targetRuntime: "osx-x64"};
export declare const qualifier : {configuration: "debug" | "release", targetFramework: "netcoreapp3.0", targetRuntime: "osx-x64"};
const sharedBinFolderName = a`shared_bin`;

Просмотреть файл

@ -42,13 +42,13 @@ namespace BuildXL {
subfolder: r`bxp-server`,
contents: [
importFrom("BuildXL.Explorer").Server.withQualifier(
Object.merge<BuildXLSdk.NetCoreAppQualifier>(qualifier, {targetFramework: "netcoreapp2.2"})
Object.merge<BuildXLSdk.NetCoreAppQualifier>(qualifier, {targetFramework: "netcoreapp3.0"})
).exe
]
} ] ),
{
subfolder: r`MsBuildGraphBuilder`,
contents: qualifier.targetFramework === "netcoreapp2.2" ? [] : [
contents: BuildXLSdk.isDotNetCoreBuild ? [] : [
// If the current qualifier is full framework, this tool has to be built with 472
importFrom("BuildXL.Tools").MsBuildGraphBuilder.withQualifier(
Object.merge<(typeof qualifier) & {targetFramework: "net472"}>(qualifier, {targetFramework: "net472"})).exe
@ -86,7 +86,7 @@ namespace BuildXL {
]
};
const frameworkSpecificPart = qualifier.targetFramework === "netcoreapp2.2"
const frameworkSpecificPart = BuildXLSdk.isDotNetCoreBuild
? qualifier.targetRuntime
: qualifier.targetFramework;

Просмотреть файл

@ -11,12 +11,12 @@ namespace Cache.NugetPackages {
const Net451ContentStore = importFrom("BuildXL.Cache.ContentStore").withQualifier({ configuration: qualifier.configuration, targetFramework: "net451", targetRuntime: "win-x64" });
const Net461ContentStore = importFrom("BuildXL.Cache.ContentStore").withQualifier({ configuration: qualifier.configuration, targetFramework: "net461", targetRuntime: "win-x64" });
const Net472ContentStore = importFrom("BuildXL.Cache.ContentStore").withQualifier({ configuration: qualifier.configuration, targetFramework: "net472", targetRuntime: "win-x64" });
const WinX64ContentStore = importFrom("BuildXL.Cache.ContentStore").withQualifier({ configuration: qualifier.configuration, targetFramework: "netcoreapp2.2", targetRuntime: "win-x64" });
const WinX64ContentStore = importFrom("BuildXL.Cache.ContentStore").withQualifier({ configuration: qualifier.configuration, targetFramework: "netcoreapp3.0", targetRuntime: "win-x64" });
const Net451MemoizationStore = importFrom("BuildXL.Cache.MemoizationStore").withQualifier({ configuration: qualifier.configuration, targetFramework: "net451", targetRuntime: "win-x64" });
const Net461MemoizationStore = importFrom("BuildXL.Cache.MemoizationStore").withQualifier({ configuration: qualifier.configuration, targetFramework: "net461", targetRuntime: "win-x64" });
const Net472MemoizationStore = importFrom("BuildXL.Cache.MemoizationStore").withQualifier({ configuration: qualifier.configuration, targetFramework: "net472", targetRuntime: "win-x64" });
const WinX64MemoizationStore = importFrom("BuildXL.Cache.MemoizationStore").withQualifier({ configuration: qualifier.configuration, targetFramework: "netcoreapp2.2", targetRuntime: "win-x64" });
const WinX64MemoizationStore = importFrom("BuildXL.Cache.MemoizationStore").withQualifier({ configuration: qualifier.configuration, targetFramework: "netcoreapp3.0", targetRuntime: "win-x64" });
const Net461DistributedCacheHost = importFrom("BuildXL.Cache.DistributedCache.Host").withQualifier({ configuration: qualifier.configuration, targetFramework: "net461", targetRuntime: "win-x64" });

Просмотреть файл

@ -42,7 +42,7 @@ namespace Tools {
contents: [
importFrom("BuildXL.Tools").withQualifier({
configuration: qualifier.configuration,
targetFramework: "netcoreapp2.2",
targetFramework: "netcoreapp3.0",
targetRuntime: qualifier.targetRuntime
}).Orchestrator.exe
],

Просмотреть файл

@ -925,7 +925,9 @@ namespace BuildXL.Processes
finally
{
m_activeProcess = null;
#pragma warning disable AsyncFixer02
cancellationTokenRegistration.Dispose();
#pragma warning restore AsyncFixer02
process.Dispose();
}

Просмотреть файл

@ -2028,7 +2028,10 @@ namespace BuildXL.Scheduler.Artifacts
if (possiblyStream.Succeeded)
{
#pragma warning disable AsyncFixer02
possiblyStream.Result.Dispose();
#pragma warning restore AsyncFixer02
possiblyPlaced =
new Possible<ContentMaterializationResult>(
new ContentMaterializationResult(

Просмотреть файл

@ -19,7 +19,7 @@ namespace Server {
references: [
...addIf(BuildXLSdk.isFullFramework,
// TODO: revisit this!
Managed.Factory.createBinary(importFrom("Microsoft.NETCore.App").Contents.all, r`ref/netcoreapp2.1/netstandard.dll`)
Managed.Factory.createBinary(importFrom("Microsoft.NETCore.App").Contents.all, r`ref/netcoreapp3.0/netstandard.dll`)
),
importFrom("BuildXL.Pips").dll,

Просмотреть файл

@ -77,7 +77,11 @@ namespace BuildXL.FrontEnd.Script.RuntimeModel.AstBridge.Rules
// Failing when the number literal overflows
try
{
double.Parse(literal, NumberStyles.AllowDecimalPoint | NumberStyles.AllowExponent, s_numberFormatInfo);
var result = double.Parse(literal, NumberStyles.AllowDecimalPoint | NumberStyles.AllowExponent, s_numberFormatInfo);
if (Double.IsInfinity(result))
{
throw new OverflowException();
}
}
catch (OverflowException)
{

Просмотреть файл

@ -98,7 +98,10 @@ namespace BuildXL.FrontEnd.Sdk
if (TryGetFrontEndFile(path, "dummyFrontEnd", out stream))
{
var result = await FileContent.ReadFromAsync(stream);
#pragma warning disable AsyncFixer02
stream?.Dispose();
#pragma warning restore AsyncFixer02
return result;
}

Просмотреть файл

@ -71,7 +71,9 @@ namespace BuildXL.FrontEnd.Script.Testing.Helper
if (TryGetFrontEndFile(path, "dummyFrontEnd", out stream))
{
var result = await FileContent.ReadFromAsync(stream);
#pragma warning disable AsyncFixer02
stream?.Dispose();
#pragma warning restore AsyncFixer02
return result;
}

Просмотреть файл

@ -22,7 +22,7 @@ namespace TestGeneratorDeployment {
subfolder: a`MacOs`,
contents: $.withQualifier({
configuration: qualifier.configuration,
targetFramework: "netcoreapp2.2",
targetFramework: "netcoreapp3.0",
targetRuntime: "osx-x64"
}).TestGenerator.deploymentContents
}

Просмотреть файл

@ -125,7 +125,10 @@ namespace BuildXL.FrontEnd.Utilities
r =>
{
// Dispose the registration for the cancellation token once the process is done
#pragma warning disable AsyncFixer02
registration.Dispose();
#pragma warning restore AsyncFixer02
//
onResult?.Invoke();

Просмотреть файл

@ -63,7 +63,9 @@ namespace BuildXL.FrontEnd.Script.Debugger
{
if (stream != null)
{
#pragma warning disable AsyncFixer02
stream.Dispose();
#pragma warning restore AsyncFixer02
}
}
}

Просмотреть файл

@ -8,6 +8,7 @@ using TypeScript.Net.Diagnostics;
using TypeScript.Net.Types;
using TypeScript.Net.Utilities;
using Diagnostic = Microsoft.VisualStudio.LanguageServer.Protocol.Diagnostic;
using Range = Microsoft.VisualStudio.LanguageServer.Protocol.Range;
namespace BuildXL.Ide.LanguageServer
{

Просмотреть файл

@ -7,6 +7,7 @@ using Microsoft.VisualStudio.LanguageServer.Protocol;
using TypeScript.Net.Diagnostics;
using TypeScript.Net.Types;
using TypeScript.Net.Utilities;
using Range = Microsoft.VisualStudio.LanguageServer.Protocol.Range;
namespace BuildXL.Ide.LanguageServer
{

Просмотреть файл

@ -20,7 +20,7 @@ namespace Tool.CreateZipPackage {
importFrom("BuildXL.Utilities").ToolSupport.dll,
],
defineConstants: [
...addIf(qualifier.targetFramework === "net472" || qualifier.targetFramework === "netcoreapp2.2", "FEATURE_EXTENDED_ATTR")
...addIf(qualifier.targetFramework === "net472" || BuildXLSdk.isDotNetCoreBuild, "FEATURE_EXTENDED_ATTR")
]
});

Просмотреть файл

@ -2,7 +2,7 @@
<PropertyGroup>
<OutputType>Exe</OutputType>
<PlatformTarget>x64</PlatformTarget>
<TargetFramework>netcoreapp2.2</TargetFramework>
<TargetFramework>netcoreapp3.0</TargetFramework>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Microsoft.AspNet.WebApi.Client" Version="5.2.7" />

Просмотреть файл

@ -37,7 +37,7 @@ namespace TestProcess {
contents: [
$.withQualifier({
configuration: qualifier.configuration,
targetFramework: "netcoreapp2.2",
targetFramework: "netcoreapp3.0",
targetRuntime: "osx-x64"
}).testProcessExe,

Просмотреть файл

@ -116,7 +116,9 @@ namespace Test.BuildXL.Ipc
Assert.False(client2PingResponseTask.IsCompleted);
// close client1 and wait for response to client2
#pragma warning disable AsyncFixer02
client1.Dispose();
#pragma warning restore AsyncFixer02
VerifyPingResponse(client2PingRequest, await client2PingResponseTask);
}
});

Просмотреть файл

@ -17,7 +17,7 @@ if NOT DEFINED DBD_TESTGEN_COUNT (
)
if NOT DEFINED TEST_COMMITID (
set TEST_COMMITID=3a5fdc81d4d87a67fd519eb8dfd963e355139dcf
set TEST_COMMITID=201fb8470cc4a363705e1b4d721e98e5731346b0
)
set TEST_SOLUTION_ROOT=%ENLISTMENTROOT%\Out\Tests\SMDB

Просмотреть файл

@ -78,7 +78,7 @@ config({
// Roslyn
{ id: "Microsoft.Net.Compilers", version: "3.0.0" },
{ id: "Microsoft.NETCore.Compilers", version: "2.10.0" },
{ id: "Microsoft.NETCore.Compilers", version: "3.1.0-beta3-final" },
{ id: "Microsoft.CodeAnalysis.Common", version: "2.10.0" },
{ id: "Microsoft.CodeAnalysis.CSharp", version: "2.10.0" },
{ id: "Microsoft.CodeAnalysis.VisualBasic", version: "2.10.0" },
@ -227,30 +227,48 @@ config({
{ id: "Validation", version: "2.3.7"},
// .NET Core Dependencies
{ id: "Microsoft.NETCore.App", version: "2.1.1" },
{ id: "NETStandard.Library", version: "2.0.3", tfm: ".NETStandard2.0"},
{ id: "Microsoft.NETCore.Platforms", version: "2.1.0", tfm: ".NETStandard2.0" },
{ id: "Microsoft.NETCore.DotNetHostPolicy", version: "2.1.1"},
{ id: "Microsoft.NETCore.App", version: "3.0.0-preview5-27626-15" },
{ id: "Microsoft.NETCore.App", version: "2.1.1", alias: "Microsoft.NETCore.App.211" },
{ id: "NETStandard.Library", version: "2.0.3", tfm: ".NETStandard2.0" },
{ id: "Microsoft.NETCore.Platforms", version: "3.0.0-preview5.19224.8" },
{ id: "Microsoft.NETCore.DotNetHostPolicy", version: "3.0.0-preview5-27626-15"},
{ id: "System.Security.Claims", version: "4.3.0" },
// .NET Core Self-Contained Deployment
{ id: "Microsoft.NETCore.DotNetHostResolver", version: "2.2.0" },
{ id: "Microsoft.NETCore.DotNetAppHost", version: "2.2.0" },
{ id: "runtime.win-x64.Microsoft.NETCore.DotNetAppHost", version: "2.2.0" },
{ id: "runtime.win-x64.Microsoft.NETCore.App", version: "2.2.0" },
{ id: "runtime.win-x64.Microsoft.NETCore.DotNetHostResolver", version: "2.2.0" },
{ id: "runtime.win-x64.Microsoft.NETCore.DotNetHostPolicy", version: "2.2.0" },
{ id: "Microsoft.NETCore.DotNetHostResolver", version: "3.0.0-preview5-27626-15" },
{ id: "Microsoft.NETCore.DotNetHostResolver", version: "2.2.0", alias: "Microsoft.NETCore.DotNetHostResolver.220" },
{ id: "runtime.osx-x64.Microsoft.NETCore.DotNetAppHost", version: "2.2.0" },
{ id: "runtime.osx-x64.Microsoft.NETCore.App", version: "2.2.0" },
{ id: "runtime.osx-x64.Microsoft.NETCore.DotNetHostResolver", version: "2.2.0" },
{ id: "runtime.osx-x64.Microsoft.NETCore.DotNetHostPolicy", version: "2.2.0" },
{ id: "Microsoft.NETCore.DotNetAppHost", version: "3.0.0-preview5-27626-15" },
{ id: "Microsoft.NETCore.DotNetAppHost", version: "2.2.0", alias: "Microsoft.NETCore.DotNetAppHost.220" },
{ id: "System.Security.Principal.Windows", version: "4.5.1" },
{ id: "System.Security.AccessControl", version: "4.5.0", dependentPackageIdsToSkip: ["System.Security.Principal.Windows"] },
{ id: "System.Threading.AccessControl", version: "4.5.0" },
// .NET Core win-x64 runtime deps
{ id: "runtime.win-x64.Microsoft.NETCore.DotNetAppHost", version: "3.0.0-preview5-27626-15" },
{ id: "runtime.win-x64.Microsoft.NETCore.DotNetAppHost", version: "2.2.0", alias: "runtime.win-x64.Microsoft.NETCore.DotNetAppHost.220" },
// DotNetCore related
{ id: "runtime.win-x64.Microsoft.NETCore.App", version: "3.0.0-preview5-27626-15" },
{ id: "runtime.win-x64.Microsoft.NETCore.App", version: "2.2.0", alias: "runtime.win-x64.Microsoft.NETCore.App.220" },
{ id: "runtime.win-x64.Microsoft.NETCore.DotNetHostResolver", version: "3.0.0-preview5-27626-15" },
{ id: "runtime.win-x64.Microsoft.NETCore.DotNetHostResolver", version: "2.2.0", alias: "runtime.win-x64.Microsoft.NETCore.DotNetHostResolver.220" },
{ id: "runtime.win-x64.Microsoft.NETCore.DotNetHostPolicy", version: "3.0.0-preview5-27626-15" },
{ id: "runtime.win-x64.Microsoft.NETCore.DotNetHostPolicy", version: "2.2.0", alias: "runtime.win-x64.Microsoft.NETCore.DotNetHostPolicy.220" },
// .NET Core osx-x64 runtime deps
{ id: "runtime.osx-x64.Microsoft.NETCore.DotNetAppHost", version: "3.0.0-preview5-27626-15" },
{ id: "runtime.osx-x64.Microsoft.NETCore.DotNetAppHost", version: "2.2.0", alias: "runtime.osx-x64.Microsoft.NETCore.DotNetAppHost.220" },
{ id: "runtime.osx-x64.Microsoft.NETCore.App", version: "3.0.0-preview5-27626-15" },
{ id: "runtime.osx-x64.Microsoft.NETCore.App", version: "2.2.0", alias: "runtime.osx-x64.Microsoft.NETCore.App.220" },
{ id: "runtime.osx-x64.Microsoft.NETCore.DotNetHostResolver", version: "3.0.0-preview5-27626-15" },
{ id: "runtime.osx-x64.Microsoft.NETCore.DotNetHostResolver", version: "2.2.0", alias: "runtime.osx-x64.Microsoft.NETCore.DotNetHostResolver.220" },
{ id: "runtime.osx-x64.Microsoft.NETCore.DotNetHostPolicy", version: "3.0.0-preview5-27626-15" },
{ id: "runtime.osx-x64.Microsoft.NETCore.DotNetHostPolicy", version: "2.2.0", alias: "runtime.osx-x64.Microsoft.NETCore.DotNetHostPolicy.220" },
// DotNetCore related deps
{ id: "Microsoft.CSharp", version: "4.3.0" },
{ id: "Microsoft.Win32.Primitives", version: "4.3.0" },
{ id: "Microsoft.Win32.Registry", version: "4.3.0" },
@ -338,6 +356,7 @@ config({
{ id: "System.Runtime.Serialization.Json", version: "4.3.0" },
{ id: "System.Runtime.Serialization.Primitives", version: "4.3.0" },
{ id: "System.Runtime.Serialization.Xml", version: "4.3.0" },
{ id: "System.Security.AccessControl", version: "4.5.0", dependentPackageIdsToSkip: ["System.Security.Principal.Windows"] },
{ id: "System.Security.Cryptography.Algorithms", version: "4.3.0" },
{ id: "System.Security.Cryptography.Cng", version: "4.3.0" },
{ id: "System.Security.Cryptography.Csp", version: "4.3.0" },
@ -345,12 +364,14 @@ config({
{ id: "System.Security.Cryptography.Primitives", version: "4.3.0" },
{ id: "System.Security.Cryptography.X509Certificates", version: "4.3.0" },
{ id: "System.Security.Principal", version: "4.3.0" },
{ id: "System.Security.Principal.Windows", version: "4.5.1" },
{ id: "System.Security.SecureString", version: "4.3.0" },
{ id: "System.Text.Encoding", version: "4.3.0" },
{ id: "System.Text.Encoding.CodePages", version: "4.3.0" },
{ id: "System.Text.Encoding.Extensions", version: "4.3.0" },
{ id: "System.Text.RegularExpressions", version: "4.3.0" },
{ id: "System.Threading", version: "4.3.0" },
{ id: "System.Threading.AccessControl", version: "4.5.0" },
{ id: "System.Threading.Overlapped", version: "4.3.0" },
{ id: "System.Threading.Tasks", version: "4.3.0" },
{ id: "System.Threading.Tasks.Extensions", version: "4.3.0" },
@ -463,20 +484,20 @@ config({
// DotNet Core Runtime
{
moduleName: "DotNet-Runtime.win-x64",
url: "https://download.visualstudio.microsoft.com/download/pr/b10d0a68-b720-48ae-bab8-4ac39bd1b5d3/f32b8b41dff5c1488c2b915a007fc4a6/dotnet-runtime-2.2.2-win-x64.zip",
hash: "VSO0:6BBAE77F9BA0231C90ABD9EA720FF886E8613CE8EF29D8B657AF201E2982829600",
url: "https://download.visualstudio.microsoft.com/download/pr/9459ede1-e223-40c7-a4c5-2409e789121a/46d4eb6067bda9f412a472f7286ffd94/dotnet-runtime-3.0.0-preview5-27626-15-win-x64.zip",
hash: "VSO0:6DBFE7BC9FA24D33A46A3A0732164BD5A4F5984E8FCE091D305FA635CD876AA700",
archiveType: "zip",
},
{
moduleName: "DotNet-Runtime.osx-x64",
url: "https://download.visualstudio.microsoft.com/download/pr/d1f0dfb3-b6bd-42ae-895f-f149bf1d90ca/9b1fb91a9692fc31d6fc83e97caba4cd/dotnet-runtime-2.2.2-osx-x64.tar.gz",
hash: "VSO0:88B2B6E8CEF711E108FDE529E781F555516634CD442B3503B712D22947F0788700",
url: "https://download.visualstudio.microsoft.com/download/pr/85024962-5dee-4f64-ab29-a903f3749f85/6178bfacc58f4d9a596b5e3facc767ab/dotnet-runtime-3.0.0-preview5-27626-15-osx-x64.tar.gz",
hash: "VSO0:C6AB5808D30BFF857263BC467FE8D818F35486763F673F79CA5A758727CEF3A900",
archiveType: "tgz",
},
{
moduleName: "DotNet-Runtime.linux-x64",
url: "https://download.visualstudio.microsoft.com/download/pr/97b97652-4f74-4866-b708-2e9b41064459/7c722daf1a80a89aa8c3dec9103c24fc/dotnet-runtime-2.2.2-linux-x64.tar.gz",
hash: "VSO0:6E5172671364C65B06C9940468A62BAF70EE27392CB2CA8B2C8BFE058CCD088300",
url: "https://download.visualstudio.microsoft.com/download/pr/f15ad9ab-7bd2-4ff5-87b6-b1a08f062ea2/6fdd314c16c17ba22934cd0ac6b4d343/dotnet-runtime-3.0.0-preview5-27626-15-linux-x64.tar.gz",
hash: "VSO0:C6AB5808D30BFF857263BC467FE8D818F35486763F673F79CA5A758727CEF3A900",
archiveType: "tgz",
},
@ -506,7 +527,7 @@ config({
qualifiers: {
defaultQualifier: {
configuration: "debug",
targetFramework: Context.getCurrentHost().os === "win" ? "net472" : "netcoreapp2.2",
targetFramework: Context.getCurrentHost().os === "win" ? "net472" : "netcoreapp3.0",
targetRuntime: Context.getCurrentHost().os === "win" ? "win-x64" : "osx-x64",
},
namedQualifiers: {
@ -522,12 +543,12 @@ config({
},
DebugDotNetCore: {
configuration: "debug",
targetFramework: "netcoreapp2.2",
targetFramework: "netcoreapp3.0",
targetRuntime: "win-x64",
},
DebugDotNetCoreMac: {
configuration: "debug",
targetFramework: "netcoreapp2.2",
targetFramework: "netcoreapp3.0",
targetRuntime: "osx-x64",
},
@ -545,12 +566,12 @@ config({
ReleaseDotNetCore: {
configuration: "release",
targetFramework: "netcoreapp2.2",
targetFramework: "netcoreapp3.0",
targetRuntime: "win-x64",
},
ReleaseDotNetCoreMac: {
configuration: "release",
targetFramework: "netcoreapp2.2",
targetFramework: "netcoreapp3.0",
targetRuntime: "osx-x64",
},
}

Просмотреть файл

@ -48,7 +48,9 @@ export const pkgs = isMicrosoftInternal ? [
// Internal pacakged version to avoid downloading from the web but the trusted stable internal feed:
{ id: "NodeJs", version: "8.12.0-noTest" },
{ id: "PowerShell.Core", version: "6.1.0" },
{ id: "Dotnet-Runtime", version: "2.2.2.1" },
// Combined runtimes
{ id: "Dotnet-Runtime", version: "5.0.0" },
] : [