Imported Upstream version 5.10.0.69

Former-commit-id: fc39669a0b707dd3c063977486506b6793da2890
This commit is contained in:
Xamarin Public Jenkins (auto-signing) 2018-01-29 19:03:06 +00:00
parent d8f8abd549
commit e2950ec768
6283 changed files with 453847 additions and 91879 deletions

View File

@ -1 +1 @@
13c4421b7a5ecebbb847a299f306f96912b3ce36
5b34281abf0849c98261c0cfdd0d23e326e8bcd9

View File

@ -1 +1 @@
5deb9ecc7ea035f4dbe596933c91280f63a5abd8
f6abc4fd387f6974da69a91114d1ccdd791df5f0

View File

@ -1 +1 @@
16c694a0175ec7eb00563855963fdf1d5a0b987c
b803f86ef29cfff6559c08f5186f8bdf441b8d4b

View File

@ -3,6 +3,7 @@
// See the LICENSE file in the project root for more information.
[assembly:System.Reflection.AssemblyVersionAttribute("2.0.5.0")]
[assembly:System.CLSCompliantAttribute(true)]
[assembly:System.Diagnostics.DebuggableAttribute((System.Diagnostics.DebuggableAttribute.DebuggingModes)(2))]
[assembly:System.Reflection.AssemblyCompanyAttribute("Mono development team")]
[assembly:System.Reflection.AssemblyCopyrightAttribute("(c) Various Mono authors")]
@ -39,6 +40,8 @@ namespace System.IO.Compression
internal ZipArchiveEntry() { }
public System.IO.Compression.ZipArchive Archive { get { throw null; } }
public long CompressedLength { get { throw null; } }
[System.CLSCompliantAttribute(false)]
public uint Crc32 { get { throw null; } }
public int ExternalAttributes { get { throw null; } set { } }
public string FullName { get { throw null; } }
public System.DateTimeOffset LastWriteTime { get { throw null; } set { } }

View File

@ -22,6 +22,7 @@
[assembly:System.Security.Permissions.SecurityPermissionAttribute(System.Security.Permissions.SecurityAction.RequestMinimum, SkipVerification=true)]
namespace System.Numerics
{
[System.Runtime.CompilerServices.IsReadOnlyAttribute]
[System.SerializableAttribute]
[System.Runtime.InteropServices.StructLayoutAttribute(System.Runtime.InteropServices.LayoutKind.Sequential)]
public partial struct BigInteger : System.IComparable, System.IComparable<System.Numerics.BigInteger>, System.IEquatable<System.Numerics.BigInteger>, System.IFormattable
@ -32,7 +33,7 @@ namespace System.Numerics
public BigInteger(double value) { throw null;}
public BigInteger(int value) { throw null;}
public BigInteger(long value) { throw null;}
public BigInteger(System.ReadOnlySpan<byte> value) { throw null;}
public BigInteger(System.ReadOnlySpan<byte> value, bool isUnsigned=false, bool isBigEndian=false) { throw null;}
public BigInteger(float value) { throw null;}
[System.CLSCompliantAttribute(false)]
public BigInteger(uint value) { throw null;}
@ -61,7 +62,7 @@ namespace System.Numerics
public override bool Equals(object obj) { throw null; }
[System.CLSCompliantAttribute(false)]
public bool Equals(ulong other) { throw null; }
public int GetByteCount() { throw null; }
public int GetByteCount(bool isUnsigned=false) { throw null; }
public override int GetHashCode() { throw null; }
public static System.Numerics.BigInteger GreatestCommonDivisor(System.Numerics.BigInteger left, System.Numerics.BigInteger right) { throw null; }
public static double Log(System.Numerics.BigInteger value) { throw null; }
@ -168,14 +169,17 @@ namespace System.Numerics
public static System.Numerics.BigInteger Remainder(System.Numerics.BigInteger dividend, System.Numerics.BigInteger divisor) { throw null; }
public static System.Numerics.BigInteger Subtract(System.Numerics.BigInteger left, System.Numerics.BigInteger right) { throw null; }
public byte[] ToByteArray() { throw null; }
public byte[] ToByteArray(bool isUnsigned=false, bool isBigEndian=false) { throw null; }
public override string ToString() { throw null; }
public string ToString(System.IFormatProvider provider) { throw null; }
public string ToString(string format) { throw null; }
public string ToString(string format, System.IFormatProvider provider) { throw null; }
public static bool TryParse(System.ReadOnlySpan<char> value, out System.Numerics.BigInteger result, System.Globalization.NumberStyles style=(System.Globalization.NumberStyles)(7), System.IFormatProvider provider=null) { result = default(System.Numerics.BigInteger); throw null; }
public bool TryFormat(System.Span<char> destination, out int charsWritten, System.ReadOnlySpan<char> format=default(System.ReadOnlySpan<char>), System.IFormatProvider provider=null) { charsWritten = default(int); throw null; }
public static bool TryParse(System.ReadOnlySpan<char> value, System.Globalization.NumberStyles style, System.IFormatProvider provider, out System.Numerics.BigInteger result) { result = default(System.Numerics.BigInteger); throw null; }
public static bool TryParse(System.ReadOnlySpan<char> value, out System.Numerics.BigInteger result) { result = default(System.Numerics.BigInteger); throw null; }
public static bool TryParse(string value, System.Globalization.NumberStyles style, System.IFormatProvider provider, out System.Numerics.BigInteger result) { result = default(System.Numerics.BigInteger); throw null; }
public static bool TryParse(string value, out System.Numerics.BigInteger result) { result = default(System.Numerics.BigInteger); throw null; }
public bool TryWriteBytes(System.Span<byte> destination, out int bytesWritten) { bytesWritten = default(int); throw null; }
public bool TryWriteBytes(System.Span<byte> destination, out int bytesWritten, bool isUnsigned=false, bool isBigEndian=false) { bytesWritten = default(int); throw null; }
}
[System.SerializableAttribute]
[System.Runtime.InteropServices.StructLayoutAttribute(System.Runtime.InteropServices.LayoutKind.Sequential)]

View File

@ -1 +1 @@
b197c51abc3c082dbda5c8adc28f62bae9c30032
6ee3ca8968f7c2c5a13fde0d89329b4efbbd7f4f

View File

@ -1 +1 @@
f3174d13fff775c60031f68c928469a31d188436
e2fe033997a386b136170ffee03d043df47c88df

View File

@ -1 +1 @@
16c694a0175ec7eb00563855963fdf1d5a0b987c
b803f86ef29cfff6559c08f5186f8bdf441b8d4b

View File

@ -3,6 +3,7 @@
// See the LICENSE file in the project root for more information.
[assembly:System.Reflection.AssemblyVersionAttribute("2.0.5.0")]
[assembly:System.CLSCompliantAttribute(true)]
[assembly:System.Diagnostics.DebuggableAttribute((System.Diagnostics.DebuggableAttribute.DebuggingModes)(2))]
[assembly:System.Reflection.AssemblyCompanyAttribute("Mono development team")]
[assembly:System.Reflection.AssemblyCopyrightAttribute("(c) Various Mono authors")]
@ -39,6 +40,8 @@ namespace System.IO.Compression
internal ZipArchiveEntry() { }
public System.IO.Compression.ZipArchive Archive { get { throw null; } }
public long CompressedLength { get { throw null; } }
[System.CLSCompliantAttribute(false)]
public uint Crc32 { get { throw null; } }
public int ExternalAttributes { get { throw null; } set { } }
public string FullName { get { throw null; } }
public System.DateTimeOffset LastWriteTime { get { throw null; } set { } }

View File

@ -22,6 +22,7 @@
[assembly:System.Security.Permissions.SecurityPermissionAttribute(System.Security.Permissions.SecurityAction.RequestMinimum, SkipVerification=true)]
namespace System.Numerics
{
[System.Runtime.CompilerServices.IsReadOnlyAttribute]
[System.SerializableAttribute]
[System.Runtime.InteropServices.StructLayoutAttribute(System.Runtime.InteropServices.LayoutKind.Sequential)]
public partial struct BigInteger : System.IComparable, System.IComparable<System.Numerics.BigInteger>, System.IEquatable<System.Numerics.BigInteger>, System.IFormattable
@ -32,7 +33,7 @@ namespace System.Numerics
public BigInteger(double value) { throw null;}
public BigInteger(int value) { throw null;}
public BigInteger(long value) { throw null;}
public BigInteger(System.ReadOnlySpan<byte> value) { throw null;}
public BigInteger(System.ReadOnlySpan<byte> value, bool isUnsigned=false, bool isBigEndian=false) { throw null;}
public BigInteger(float value) { throw null;}
[System.CLSCompliantAttribute(false)]
public BigInteger(uint value) { throw null;}
@ -61,7 +62,7 @@ namespace System.Numerics
public override bool Equals(object obj) { throw null; }
[System.CLSCompliantAttribute(false)]
public bool Equals(ulong other) { throw null; }
public int GetByteCount() { throw null; }
public int GetByteCount(bool isUnsigned=false) { throw null; }
public override int GetHashCode() { throw null; }
public static System.Numerics.BigInteger GreatestCommonDivisor(System.Numerics.BigInteger left, System.Numerics.BigInteger right) { throw null; }
public static double Log(System.Numerics.BigInteger value) { throw null; }
@ -168,14 +169,17 @@ namespace System.Numerics
public static System.Numerics.BigInteger Remainder(System.Numerics.BigInteger dividend, System.Numerics.BigInteger divisor) { throw null; }
public static System.Numerics.BigInteger Subtract(System.Numerics.BigInteger left, System.Numerics.BigInteger right) { throw null; }
public byte[] ToByteArray() { throw null; }
public byte[] ToByteArray(bool isUnsigned=false, bool isBigEndian=false) { throw null; }
public override string ToString() { throw null; }
public string ToString(System.IFormatProvider provider) { throw null; }
public string ToString(string format) { throw null; }
public string ToString(string format, System.IFormatProvider provider) { throw null; }
public static bool TryParse(System.ReadOnlySpan<char> value, out System.Numerics.BigInteger result, System.Globalization.NumberStyles style=(System.Globalization.NumberStyles)(7), System.IFormatProvider provider=null) { result = default(System.Numerics.BigInteger); throw null; }
public bool TryFormat(System.Span<char> destination, out int charsWritten, System.ReadOnlySpan<char> format=default(System.ReadOnlySpan<char>), System.IFormatProvider provider=null) { charsWritten = default(int); throw null; }
public static bool TryParse(System.ReadOnlySpan<char> value, System.Globalization.NumberStyles style, System.IFormatProvider provider, out System.Numerics.BigInteger result) { result = default(System.Numerics.BigInteger); throw null; }
public static bool TryParse(System.ReadOnlySpan<char> value, out System.Numerics.BigInteger result) { result = default(System.Numerics.BigInteger); throw null; }
public static bool TryParse(string value, System.Globalization.NumberStyles style, System.IFormatProvider provider, out System.Numerics.BigInteger result) { result = default(System.Numerics.BigInteger); throw null; }
public static bool TryParse(string value, out System.Numerics.BigInteger result) { result = default(System.Numerics.BigInteger); throw null; }
public bool TryWriteBytes(System.Span<byte> destination, out int bytesWritten) { bytesWritten = default(int); throw null; }
public bool TryWriteBytes(System.Span<byte> destination, out int bytesWritten, bool isUnsigned=false, bool isBigEndian=false) { bytesWritten = default(int); throw null; }
}
[System.SerializableAttribute]
[System.Runtime.InteropServices.StructLayoutAttribute(System.Runtime.InteropServices.LayoutKind.Sequential)]

View File

@ -1 +1 @@
4752cd1a3db92b01de458920358a6c4513933104
0aabd5e9b1f4b5f354b3f274cad6983bfa8434e8

View File

@ -1 +1 @@
4106d7c02b3c5d2831e4f06e674c5197fba1d6d4
caea80eb9a8aeae8d816300ba49e3e58a189a287

View File

@ -1 +1 @@
c52ad21527ca17216e4412a711bd166d404dc32a
1f8d4c968568f6efbbb436418f27bf2ed01bc649

View File

@ -1 +1 @@
1daaa964a2b17770072422022f356fc5dd99ef2a
234aaf94d293014332715fe43d020e87b2c24a7c

View File

@ -3,6 +3,7 @@
// See the LICENSE file in the project root for more information.
[assembly:System.Reflection.AssemblyVersionAttribute("4.0.0.0")]
[assembly:System.CLSCompliantAttribute(true)]
[assembly:System.Diagnostics.DebuggableAttribute((System.Diagnostics.DebuggableAttribute.DebuggingModes)(2))]
[assembly:System.Reflection.AssemblyCompanyAttribute("Mono development team")]
[assembly:System.Reflection.AssemblyCopyrightAttribute("(c) Various Mono authors")]
@ -39,6 +40,8 @@ namespace System.IO.Compression
internal ZipArchiveEntry() { }
public System.IO.Compression.ZipArchive Archive { get { throw null; } }
public long CompressedLength { get { throw null; } }
[System.CLSCompliantAttribute(false)]
public uint Crc32 { get { throw null; } }
public int ExternalAttributes { get { throw null; } set { } }
public string FullName { get { throw null; } }
public System.DateTimeOffset LastWriteTime { get { throw null; } set { } }

View File

@ -22,6 +22,7 @@
[assembly:System.Security.Permissions.SecurityPermissionAttribute(System.Security.Permissions.SecurityAction.RequestMinimum, SkipVerification=true)]
namespace System.Numerics
{
[System.Runtime.CompilerServices.IsReadOnlyAttribute]
[System.SerializableAttribute]
[System.Runtime.InteropServices.StructLayoutAttribute(System.Runtime.InteropServices.LayoutKind.Sequential)]
public partial struct BigInteger : System.IComparable, System.IComparable<System.Numerics.BigInteger>, System.IEquatable<System.Numerics.BigInteger>, System.IFormattable
@ -32,7 +33,7 @@ namespace System.Numerics
public BigInteger(double value) { throw null;}
public BigInteger(int value) { throw null;}
public BigInteger(long value) { throw null;}
public BigInteger(System.ReadOnlySpan<byte> value) { throw null;}
public BigInteger(System.ReadOnlySpan<byte> value, bool isUnsigned=false, bool isBigEndian=false) { throw null;}
public BigInteger(float value) { throw null;}
[System.CLSCompliantAttribute(false)]
public BigInteger(uint value) { throw null;}
@ -61,7 +62,7 @@ namespace System.Numerics
public override bool Equals(object obj) { throw null; }
[System.CLSCompliantAttribute(false)]
public bool Equals(ulong other) { throw null; }
public int GetByteCount() { throw null; }
public int GetByteCount(bool isUnsigned=false) { throw null; }
public override int GetHashCode() { throw null; }
public static System.Numerics.BigInteger GreatestCommonDivisor(System.Numerics.BigInteger left, System.Numerics.BigInteger right) { throw null; }
public static double Log(System.Numerics.BigInteger value) { throw null; }
@ -168,14 +169,17 @@ namespace System.Numerics
public static System.Numerics.BigInteger Remainder(System.Numerics.BigInteger dividend, System.Numerics.BigInteger divisor) { throw null; }
public static System.Numerics.BigInteger Subtract(System.Numerics.BigInteger left, System.Numerics.BigInteger right) { throw null; }
public byte[] ToByteArray() { throw null; }
public byte[] ToByteArray(bool isUnsigned=false, bool isBigEndian=false) { throw null; }
public override string ToString() { throw null; }
public string ToString(System.IFormatProvider provider) { throw null; }
public string ToString(string format) { throw null; }
public string ToString(string format, System.IFormatProvider provider) { throw null; }
public static bool TryParse(System.ReadOnlySpan<char> value, out System.Numerics.BigInteger result, System.Globalization.NumberStyles style=(System.Globalization.NumberStyles)(7), System.IFormatProvider provider=null) { result = default(System.Numerics.BigInteger); throw null; }
public bool TryFormat(System.Span<char> destination, out int charsWritten, System.ReadOnlySpan<char> format=default(System.ReadOnlySpan<char>), System.IFormatProvider provider=null) { charsWritten = default(int); throw null; }
public static bool TryParse(System.ReadOnlySpan<char> value, System.Globalization.NumberStyles style, System.IFormatProvider provider, out System.Numerics.BigInteger result) { result = default(System.Numerics.BigInteger); throw null; }
public static bool TryParse(System.ReadOnlySpan<char> value, out System.Numerics.BigInteger result) { result = default(System.Numerics.BigInteger); throw null; }
public static bool TryParse(string value, System.Globalization.NumberStyles style, System.IFormatProvider provider, out System.Numerics.BigInteger result) { result = default(System.Numerics.BigInteger); throw null; }
public static bool TryParse(string value, out System.Numerics.BigInteger result) { result = default(System.Numerics.BigInteger); throw null; }
public bool TryWriteBytes(System.Span<byte> destination, out int bytesWritten) { bytesWritten = default(int); throw null; }
public bool TryWriteBytes(System.Span<byte> destination, out int bytesWritten, bool isUnsigned=false, bool isBigEndian=false) { bytesWritten = default(int); throw null; }
}
[System.SerializableAttribute]
[System.Runtime.InteropServices.StructLayoutAttribute(System.Runtime.InteropServices.LayoutKind.Sequential)]

View File

@ -474,6 +474,14 @@ namespace System.Security.Cryptography.Xml
public override System.Xml.XmlElement GetXml() { throw null; }
public override void LoadXml(System.Xml.XmlElement value) { }
}
[System.SerializableAttribute]
public partial class CryptoSignedXmlRecursionException : System.Xml.XmlException
{
public CryptoSignedXmlRecursionException() { }
protected CryptoSignedXmlRecursionException(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) { }
public CryptoSignedXmlRecursionException(string message) { }
public CryptoSignedXmlRecursionException(string message, System.Exception inner) { }
}
public partial class DataObject
{
public DataObject() { }

View File

@ -1 +1 @@
59368e66d91c68d9e8972da9211f67ce3484cfa8
f41727750b395e4019243785bcefced55377f2f3

View File

@ -1 +1 @@
44f15a763ed2458ee79e0b610407d136b27f1825
9a68bbd21ee9196ff71f50bc108c1324eae4f4f9

View File

@ -1 +1 @@
2.0.0-prerelease-02118-01
2.1.0-prerelease-02419-02

5
external/corefx/CODE_OF_CONDUCT.md vendored Normal file
View File

@ -0,0 +1,5 @@
# Code of Conduct
This project has adopted the code of conduct defined by the Contributor Covenant
to clarify expected behavior in our community.
For more information, see the [.NET Foundation Code of Conduct](https://dotnetfoundation.org/code-of-conduct).

View File

@ -0,0 +1,13 @@
# API Design Guidelines
The guidelines in this folder represent work in progress API design guidelines.
The official guidelines can be found in the [documentation][docs] and as an
actual [book].
## Process
To submit new proposals for design guidelines, simply create a PR adding or
modifying an existing file.
[docs]: https://docs.microsoft.com/en-us/dotnet/standard/design-guidelines/
[book]: https://amazon.com/dp/0321545613

View File

@ -0,0 +1,54 @@
# System.Memory Design Guidelines
`System.Memory` is a collection of types and features that make working with
buffers and raw memory more efficient while remaining type safe. The feature
specs can be found here:
* [`Span<T>`](https://github.com/dotnet/corefxlab/blob/master/docs/specs/span.md)
* [`Memory<T>`](https://github.com/dotnet/corefxlab/blob/master/docs/specs/memory.md)
## Overview
* `ReadOnlySpan<T>` is effectively the universal receiver, in that `T[]`, `T*`,
`Memory<T>`, `ReadOnlyMemory<T>`, `Span<T>`, `ArraySegment<T>` can all be
converted to it. So if you can declare your API to accept a `ReadOnlySpan<T>`
and behave efficiently, that's best, as any of these inputs can be used with
your method.
* Similarly for `Span<T>`, if you need write access in the implementation.
* It allows building safe public APIs that can operate on unmanaged memory
without forcing all consumers to use pointers (and thus becoming unsafe). The
implementation can still extract a raw pointer, therefore getting equivalent
performance if necessary.
* It's generally best for a synchronous method to accept `Span<T>` or
`ReadOnlySpan<T>`. However, since `ReadOnlySpan<T>`/`Span<T>` are stack-only
[1], this may be too limiting for the implementation. In particular, if the
implementation needs to be able to store the argument for later usage, such as
with an asynchronous method or an iterator, `ReadOnlySpan<T>`/`Span<T>` is
inappropriate. `ReadOnlyMemory<T>`/`Memory<T>` should be used in such
situations.
[1] *stack-only* isn't the best way to put it. Strictly speaking, these types
are called `ref`-like types. These types must be structs, cannot be fields
in classes, cannot be boxed, and cannot be used to instantiate generic
types. Value types containing fields of `ref`-like types must themselves be
`ref`-like types.
## Guidance
* **DO NOT** use pointers for methods operating on buffers. Instead, use
appropriate type from below. In performance critical code where bounds
checking is unacceptable, the method's implementation can still pin the span
and get the raw pointer if necessary. The key is that you don't spread the
pointer through the public API.
- Synchronous, read-only access needed: `ReadOnlySpan<T>`
- Synchronous, writable access needed: `Span<T>`
- Asynchronous, read-only access needed: `ReadOnlyMemory<T>`
- Asynchronous, writable access needed: `Memory<T>`
* **CONSIDER** using `stackalloc` with `Span<T>` when you need small temporary
storage but you need to avoid allocations and associated life-time management.
* **AVOID** providing overloads for both `ReadOnlySpan<T>` and `Span<T>` as `Span<T>`
can be implicitly converted to `ReadOnlySpan<T>`.
* **AVOID** providing overloads for both `ReadOnlySpan<T>`/`Span<T>` as well as
pointers and arrays as those can be implicitly converted to
`ReadOnlySpan<T>`/`Span<T>`.

View File

@ -98,18 +98,32 @@ When running on Linux, ICU is used to get the time zone display name. In invaria
## Enabling the invariant mode
Applications can enable the invariant mode by setting the config switch System.Globalization.Invariant to true, in the `runtimeconfig.json` file, as you can see in the following example:
Applications can enable the invariant mode by either of the following:
```json
{
"runtimeOptions": {
"configProperties": {
"System.Globalization.Invariant": true
},
1. in project file:
```xml
<ItemGroup>
<RuntimeHostConfigurationOption Include="System.Globalization.Invariant" Value="true" />
</ItemGroup>
```
2. in `runtimeconfig.json` file:
```json
{
"runtimeOptions": {
"configProperties": {
"System.Globalization.Invariant": true
}
}
}
}
```
```
3. setting environment variable value `DOTNET_SYSTEM_GLOBALIZATION_INVARIANT` to `true` or `1`.
Note: value set in project file or `runtimeconfig.json` has higher priority than the environment variable.
## APP behavior with and without the invariant config switch
- If the invariant config switch is not set or it is set false

View File

@ -0,0 +1,68 @@
# Advanced scenario - Build and run application code with csc/vbc and CoreRun
__Don't consider using this tutorial for anything else than inner-loop testing of corefx/coreclr binaries. Prefer using the official .NET Core SDK: https://docs.microsoft.com/en-us/dotnet/core/tools/?tabs=netcore2x__
This tutorial describes how to build and run application code that targets self-compiled .NET Core binaries without using Visual Studio, the .NET Core SDK Host (`dotnet.exe`) or a project file (e.g. `csproj`). Follow these steps to quickly validate changes you've made in the product e.g. by running benchmarks or tests on it.
If you are on Windows you currently need to use the `Developer Command Prompt for VS 2017` to build corefx/coreclr! For the sake of completeness, we have placed our repositories under `d:\git\`.
## Compile corefx with self-compiled coreclr binaries
If you've made changes to coreclr make sure to also build it and pass its binaries to corefx.
```
coreclr\build -release
corefx\build -release -- /p:CoreCLROverridePath=d:\git\coreclr\bin\Product\Windows_NT.x64.Release\
```
## Compile corefx with pre-compiled coreclr binaries
If you haven't made any changes to coreclr you're fine with just building corefx. This automatically picks pre-compiled coreclr binaries from MyGet.
```
corefx\build -release
```
## Create and prepare your application
We will build a sample application which outputs `Hello World!` to the console.
1. Create an application directory (in our example under `d:\git\`):
```
mkdir core-demo
cd core-demo
```
2. Save the following C# code to a file called `Program.cs` into your application folder:
```csharp
using System;
public class Program
{
public static void Main()
{
Console.WriteLine("Hello World!");
}
}
```
3. Copy the just built corefx assemblies into your application directory. When using Visual Studio or the .NET Core SDK Host (`dotnet.exe`) you usually compile against *reference assemblies*. For simplicity we compile against the same assembly set that we use during run time.
```
xcopy ..\corefx\bin\testhost\netcoreapp-Windows_NT-Release-x64\shared\Microsoft.NETCore.App\9.9.9 runtime /e /i /y /s
```
You don't need all the assemblies that are built by corefx but copying the entire directory makes it easier if you want to reference additional ones. At a minimum, this app will need the following assemblies to run:
- CoreClr assemblies: `clrjit.dll`, `CoreRun.exe`, `coreclr.dll`, `System.Private.CoreLib.dll`. For more information about the CoreClr parts, visit [Using your build](https://github.com/dotnet/coreclr/blob/master/Documentation/workflow/UsingYourBuild.md)
- CoreFx assemblies: `System.Runtime.dll`, `System.Runtime.Extensions.dll`, `System.Runtime.InteropServices.dll`, `System.Text.Encoding.Extensions.dll`, `System.Threading.dll`
## Compile your application
Use the C# Compiler (`csc`) to compile your C# code (`Program.cs`) against the copied assemblies. For our Hello World example we need to compile our application code against `System.Private.Corelib.dll`, `System.Runtime.dll`, `System.Runtime.Extensions.dll` and `System.Console.dll`. As described above these assemblies have dependencies on two other assemblies: `System.Text.Encoding.Extensions.dll` and `System.Threading.dll`.
```
.\runtime\corerun ..\corefx\tools\csc.dll /noconfig /r:runtime\System.Private.Corelib.dll /r:runtime\System.Runtime.dll /r:runtime\System.Runtime.Extensions.dll /r:runtime\System.Console.dll /out:runtime\Program.dll Program.cs
```
If you want to compile Visual Basic code simply replace `csc.dll` with `vbc.dll`.
## Run your application
`Corerun.exe` is part of the coreclr binaries and is best described as the host of your .NET Core application. Find more information at [Using CoreRun](https://github.com/dotnet/coreclr/blob/master/Documentation/workflow/UsingCoreRun.md).
```
cd runtime
.\corerun Program.dll
```
> Hello World!

View File

@ -78,4 +78,7 @@ Some of the libraries for which contracts and tests live in the corefx repo are
1. Follow the steps outlined at [Testing with Private CoreClr Bits](https://github.com/dotnet/corefx/blob/master/Documentation/project-docs/developer-guide.md#testing-with-private-coreclr-bits). Make sure to include the optional steps listed as being required for code coverage.
2. Add /p:CodeCoverageAssemblies="System.Private.CoreLib" to the previously discussed msbuild command, e.g. msbuild /t:BuildAndTest /p:Coverage=true /p:CodeCoverageAssemblies="System.Private.CoreLib"
Note that you will also want to copy the System.Private.CoreLib.pdb along with the System.Private.CoreLib.dll. As of 10/2017 this PDB must be a windows PDB (Hopefully by early 2018 OpenCOver will directly support portable PDBs.
You can determine if it is a windows PDB by doing 'more System.Private.CoreLib.pdb. If it begins with 'Microsoft C/C++ MSF 7.00' it is a windows PDB) If you need a windows PDB the Pdb2Pdb tool will convert (or you can do a msbuild /t:rebuild /p:DebugType=full in the src\mscorlib)
The resulting code coverage report should now also include details for System.Private.CoreLib.

View File

@ -19,6 +19,10 @@ For more information about the different options when building, run `build.sh -?
### Linux
First, the package lists might need to be updated
`sudo apt-get update`
#### Native build
For Ubuntu 14.04, the following packages should be installed to build the native

View File

@ -88,6 +88,22 @@ All supported targets with unique windows/unix build for netcoreapp:
<PropertyGroup>
```
### Placeholder build configurations
Placeholder build configurations can be added to the `<BuildConfigurations>` property to indicate the build system that the specific project is inbox in that framework and that build configuration needs to be ignored.
Placeholder build configurations start with _ prefix.
Example:
When we have a project that has a `netstandard` build configuration that means that this project is compatible with any build configuration. So if we do a vertical build for `netfx` this project will be built as part of the vertical because `netfx` is compatible with `netstandard`. This means that in the runtime and testhost binaries the netstandard implementation will be included, and we will test against those assets instead of testing against the framework inbox asset. In order to tell the build system to not include this project as part of the `netfx` vertical we need to add a placeholder configuration:
```
<PropertyGroup>
<BuildConfigurations>
netstandard;
_netfx;
</BuildConfigurations>
</PropertyGroup>
```
## Options for building
A full or individual project build is centered around BuildConfiguration and will be setup in one of the following ways:

View File

@ -6,40 +6,61 @@ CoreFX can be debugged on unix using both lldb and visual studio code
## Using lldb and SOS
- Run the test using msbuild at least once with `/t:BuildAndTest`.
- Install version 3.9 of lldb and launch lldb with dotnet as the process and arguments matching the arguments used when running the test through msbuild.
- [Install version 3.9 of lldb](https://github.com/dotnet/coreclr/blob/master/Documentation/building/debugging-instructions.md#debugging-core-dumps-with-lldb) and launch lldb with dotnet as the process and arguments matching the arguments used when running the test through msbuild.
- Load the sos plugin using `plugin load libsosplugin.so`.
- Type `soshelp` to get help. You can now use all sos commands like `bpmd`.
You may need to supply a path to load SOS. It can be found next to libcoreclr.so. For example:
```
(lldb) plugin load libsosplugin.so
error: no such file
(lldb) image list libcoreclr.so
[ 0] ..... /home/dan/dotnet/shared/Microsoft.NETCoreApp/2.0.4/libcoreclr.so
(lldb) plugin load /home/dan/dotnet/shared/Microsoft.NETCoreApp/2.0.4/libcoreclr.so
```
## Debugging core dumps with lldb
It is also possible to debug .NET Core crash dumps using lldb and SOS. In order to do this, you need all of the following:
- A machine whose environment matches the one used to produce the crash dumps. For crash dumps occurring on CI machines, you can either
- Log onto a matching machine in the pool.
- Create a new VM from the matching image.
- You will find the dump url to download the crash dump file in the test logs, something similar to:
<pre>
2017-10-10 21:17:48,020: INFO: proc(54): run_and_log_output: Output: dumplingid: eefcb1cc36977ccf86f457ee28a33a7b4cc24e13
2017-10-10 21:17:48,020: INFO: proc(54): run_and_log_output: Output: <b>https://dumpling.azurewebsites.net/api/dumplings/archived/eefcb1cc36977ccf86f457ee28a33a7b4cc24e13</b>
</pre>
- The crash dump file. We have a service called "Dumpling" which collects, uploads, and archives crash dump files during all of our CI jobs and official builds.
- Matching runtime bits from the crash. To get these, you should either:
- On Linux, there is an utility called `createdump` (see [doc](https://github.com/dotnet/coreclr/blob/master/Documentation/botr/xplat-minidump-generation.md "doc")) that can be setup to generate core dumps when a managed app throws an unhandled exception or faults.
- Matching coreclr/corefx runtime bits from the crash. To get these, you should either:
- Download the matching Jenkins archive onto your repro machine.
- Check out the corefx repository at the appropriate commit and re-build the necessary portions.
- lldb version 3.9.
- libsosplugin.so built against a matching version of lldb. The official libsosplugin.so is now built against 3.9.
- Symbols for libcoreclr.so. libcoreclr.so.dbg should be copied to your "runtime" folder. To get this file, you can:
- Build coreclr at the matching commit. In order to determine which commit was used to build a version of libcoreclr.so, run the following command:
`strings libcoreclr.so | grep "@(#)"`
- You can also download the matching "symbols" nuget package from myget.org. You want the same package version that is used to build corefx. There is a "Download Symbols" button in the myget UI for this purpose.
- Check out the coreclr and corefx repositories at the appropriate commit and re-build the necessary portions.
- You can also download the matching "symbols" nuget package from myget.org. There is a "Download Symbols" button in the myget UI for this purpose.
- lldb version 3.9. The SOS plugin (i.e. libsosplugin.so) provided is now built for lldb 3.9. In order to install lldb 3.9 just run the following commands:
```
~$ echo "deb http://llvm.org/apt/trusty/ llvm-toolchain-trusty-3.9 main" | sudo tee /etc/apt/sources.list.d/llvm.list
~$ wget -O - http://llvm.org/apt/llvm-snapshot.gpg.key | sudo apt-key add -
~$ sudo apt-get update
~$ sudo apt-get install lldb-3.9
```
Once you have everything listed above, you are ready to start debugging. You need to specify an extra parameter to lldb in order for it to correctly resolve the symbols for libcoreclr.so. Use a command like this:
```
lldb -O "settings set target.exec-search-paths <runtime-path>" --core <core-file-path> <dotnet-path>
lldb-3.9 -O "settings set target.exec-search-paths <runtime-path>" -o "plugin load <path-to-libsosplugin.so>" --core <core-file-path> <host-path>
```
- `<runtime-path>`: The path containing libcoreclr.so.dbg, as well as the rest of the runtime and framework assemblies.
- `<core-file-path>`: The path to the core dump you are attempting to debug.
- `<dotnet-path>`: The path to the dotnet executable, potentially in the `<runtime-path>` folder.
- `<host-path>`: The path to the dotnet or corerun executable, potentially in the `<runtime-path>` folder.
- `<path-to-libsosplugin.so>`: The path to libsosplugin.so, should be in the `<runtime-path>` folder.
lldb should start debugging successfully at this point. You should see stacktraces with resolved symbols for libcoreclr.so. At this point, you can run `plugin load <libsosplugin.so-path>`, and begin using SOS commands, as above.
##### Example
```
lldb-3.9 -O "settings set target.exec-search-paths /home/parallels/Downloads/System.Drawing.Common.Tests/home/helixbot/dotnetbuild/work/2a74cf82-3018-4e08-9e9a-744bb492869e/Payload/shared/Microsoft.NETCore.App/9.9.9/" -o "plugin load /home/parallels/Downloads/System.Drawing.Common.Tests/home/helixbot/dotnetbuild/work/2a74cf82-3018-4e08-9e9a-744bb492869e/Payload/shared/Microsoft.NETCore.App/9.9.9/libsosplugin.so" --core /home/parallels/Downloads/System.Drawing.Common.Tests/home/helixbot/dotnetbuild/work/2a74cf82-3018-4e08-9e9a-744bb492869e/Work/f6414a62-9b41-4144-baed-756321e3e075/Unzip/core /home/parallels/Downloads/System.Drawing.Common.Tests/home/helixbot/dotnetbuild/work/2a74cf82-3018-4e08-9e9a-744bb492869e/Payload/shared/Microsoft.NETCore.App/9.9.9/dotnet
```
## Using Visual Studio Code
- Install [Visual Studio Code](https://code.visualstudio.com/)

View File

@ -0,0 +1,146 @@
# Benchmarking .NET Core 2.0 / 2.1 applications
We recommend using [BenchmarkDotNet](https://github.com/dotnet/BenchmarkDotNet) as it allows specifying custom SDK paths and measuring performance not just in-proc but also out-of-proc as a dedicated executable.
```
<ItemGroup>
<PackageReference Include="BenchmarkDotNet" Version="0.10.11" />
</ItemGroup>
```
## Defining your benchmark
See [BenchmarkDotNet](http://benchmarkdotnet.org/Guides/GettingStarted.htm) documentation -- minimally you need to adorn a public method with the `[Benchmark]` attribute but there are many other ways to customize what is done such as using parameter sets or setup/cleanup methods. Of course, you'll want to bracket just the relevant code in your benchmark, ensure there are sufficient iterations that you minimise noise, as well as leaving the machine otherwise idle while you measure.
# Benchmarking .NET Core 2.0 applications
For benchmarking .NET Core 2.0 applications you only need the .NET Core 2.0 SDK installed: https://www.microsoft.com/net/download/windows. Make sure that your `TargetFramework` property in your csproj is set to `netcoreapp2.0` and follow the official BenchmarkDotNet instructions: http://benchmarkdotnet.org.
# Benchmarking .NET Core 2.1 applications
Make sure to download the .NET Core 2.1 SDK zip archive (https://github.com/dotnet/core-setup#daily-builds) and extract it somewhere locally, e.g.: `C:\dotnet-nightly\`.
For the sake of this tutorial we won't modify the `PATH` variable and instead always explicitly call the `dotnet.exe` from the downloaded SDK folder.
The shared framework is a set of assemblies that are packed into a `netcoreapp` Nuget package which is used when you set your `TargetFramework` to `netcoreappX.X`. You can either decide to use your local self-compiled shared framework package or use the one which is bundled with the .NET Core 2.1 SDK.
## Alternative 1 - Using the shared framework from the .NET Core 2.1 SDK
Follow the instructions described here https://github.com/dotnet/corefx/blob/master/Documentation/project-docs/dogfooding.md#advanced-scenario---using-a-nightly-build-of-microsoftnetcoreapp and skip the last part which calls the `dotnet.exe` to run the application.
Add a benchmark class, configure it either with a manual configuration or by attributing it and pass the class type to the BenchmarkRunner:
```csharp
[MemoryDiagnoser]
// ...
public class Benchmark
{
// Benchmark code ...
}
public class Program
{
public static void Main()
{
BenchmarkRunner.Run<Benchmark>();
}
}
```
## Alternative 2 - Using your self-compiled shared framework
Follow the instructions described here https://github.com/dotnet/corefx/blob/master/Documentation/project-docs/dogfooding.md#more-advanced-scenario---using-your-local-corefx-build and skip the last part which calls the `dotnet.exe` to run the application.
Make sure to build your local corefx repository in RELEASE mode `.\build -release`! You currently need to have a self-contained application to inject your local shared framework package.
Currently there is no straightforward way to run your BenchmarkDotNet application in a dedicated process, therefore we are using the InProcess switch `[InProcess]`:
```csharp
[InProcess]
public class Benchmark
{
// Benchmark code ...
}
public class Program
{
public static void Main()
{
BenchmarkRunner.Run<Benchmark>();
}
}
```
# Benchmark multiple or custom .NET Core 2.x SDKs
Follow the instructions described here https://github.com/dotnet/corefx/blob/master/Documentation/project-docs/dogfooding.md#advanced-scenario---using-a-nightly-build-of-microsoftnetcoreapp and skip the last part which calls the `dotnet.exe` to run the application.
Whenever you want to benchmark an application simultaneously with one or multiple different .NET Core run time framework versions, you want to create a manual BenchmarkDotNet configuration file. Add the desired amount of Jobs and `NetCoreAppSettings` to specify the `targetFrameworkMoniker`, `runtimeFrameworkVersion` and `customDotNetCliPath`:
```csharp
using BenchmarkDotNet.Columns;
using BenchmarkDotNet.Configs;
using BenchmarkDotNet.Diagnosers;
using BenchmarkDotNet.Environments;
using BenchmarkDotNet.Exporters;
using BenchmarkDotNet.Jobs;
using BenchmarkDotNet.Loggers;
using BenchmarkDotNet.Toolchains.CsProj;
using BenchmarkDotNet.Toolchains.DotNetCli;
public class MainConfig : ManualConfig
{
public MainConfig()
{
// Job #1
Add(Job.Default
.With(Runtime.Core)
.With(CsProjCoreToolchain.From(new NetCoreAppSettings(
targetFrameworkMoniker: "netcoreapp2.1",
runtimeFrameworkVersion: "2.1.0-preview1-25919-02", // <-- Adjust version here
customDotNetCliPath: @"C:\dotnet-nightly\dotnet.exe", // <-- Adjust path here
name: "Core 2.1.0-preview"))));
// Job #2 which could be in-process (see Alternative #2)
// ...
// Job #3 which could be .NET Core 2.0
// ...
// Add whatever jobs you need
Add(DefaultColumnProviders.Instance);
Add(MarkdownExporter.GitHub);
Add(new ConsoleLogger());
Add(new HtmlExporter());
Add(MemoryDiagnoser.Default);
}
}
```
In your application entry point pass the configuration to the BenchmarkRunner:
```csharp
public class Benchmark
{
// Benchmark code ...
}
public class Program
{
public static void Main()
{
BenchmarkRunner.Run<Benchmark>(new MainConfig());
}
}
```
# Running the benchmark
To get valid results make sure to run your project in RELEASE configuration:
```
cd "path/to/your/benchmark/project"
"C:\dotnet-nightly\dotnet.exe" run -c Release
```
# Reporting results
Often in a Github Pull Request or issue you will want to share performance results to justify a change. If you add the `MarkdownExporter` job in the configuration (as you can see in Alternative 3), BenchmarkDotNet will have created a Markdown (*.md) file in the `BenchmarkDotNet.Artifacts` folder which you can paste in, along with the code you benchmarked.
# References
- [BenchmarkDotNet](http://benchmarkdotnet.org/)
- [BenchmarkDotNet Github](https://github.com/dotnet/BenchmarkDotNet)
- [.NET Core SDK](https://github.com/dotnet/core-setup)

View File

@ -1,32 +1,54 @@
# How to get up and running on .NET Core 2.0
# How to get up and running on .NET Core
This document provides the steps necessary to consume a nightly build of
.NET Core 2.0 runtime and SDK.
.NET Core runtime and SDK.
Please note that these steps are likely to change as we're simplifying
this experience. Make sure to consult this document often.
## Install prerequisites
1. Acquire the latest nightly .NET Core SDK 2.0
1. Acquire the latest nightly .NET Core SDK by downloading the zip or tarball listed in https://github.com/dotnet/cli/blob/master/README.md#installers-and-binaries (for example, https://dotnetcli.blob.core.windows.net/dotnet/Sdk/master/dotnet-sdk-latest-win-x64.zip ) into a new folder.
- [Win 64-bit Latest Zip](https://dotnetcli.azureedge.net/dotnet/Sdk/master/dotnet-dev-win-x64.latest.zip) [Installer](https://dotnetcli.azureedge.net/dotnet/Sdk/master/dotnet-dev-win-x64.latest.exe)
- [macOS 64-bit Latest Tar](https://dotnetcli.azureedge.net/dotnet/Sdk/master/dotnet-dev-osx-x64.latest.tar.gz) [Installer](https://dotnetcli.azureedge.net/dotnet/Sdk/master/dotnet-dev-osx-x64.latest.pkg)
- [Others](https://github.com/dotnet/cli/blob/master/README.md#installers-and-binaries)
2. By default, the dotnet CLI will use the globally installed SDK if it matches the major/minor version you request and has a higher revision. To force it to use the locally installed SDK, you must set an environment variable `DOTNET_MULTILEVEL_LOOKUP=0` in your shell. You can use `dotnet --info` to verify what version of the Shared Framework it is using.
To setup the SDK download the zip and extract it somewhere and add the root folder to your path or always fully
qualify the path to dotnet in the root of this folder for all the instructions in this document.
3. Reminder: if you are using a local copy of the dotnet CLI, take care that when you type `dotnet` you do not inadvertently pick up a different copy that you may have in your path. On Windows, for example, if you use a Developer Command Prompt, a global copy may be in the path, so use the fully qualified path to your local `dotnet`. If you receive an error "The current .NET SDK does not support targeting .NET Core 2.1." then you may be executing an older `dotnet`.
Note: Installer will put dotnet globally in your path which you might not want for dogfooding daily toolsets.
After setting up dotnet you can verify you are using the newer version by executing `dotnet --info` -- the version should be greater than 2.2.0-* (dotnet CLI is currently numbered 2.2.0-* not 2.1.0-* ). Here is an example output at the time of writing:
```
>dotnet.exe --info
.NET Command Line Tools (2.2.0-preview1-007460)
After setting up dotnet you can verify you are using the newer version by:
Product Information:
Version: 2.2.0-preview1-007460
Commit SHA-1 hash: 173cc035e4
`dotnet --info` -- the version should be greater than 2.0.0-*
Runtime Environment:
OS Name: Windows
OS Version: 10.0.16299
OS Platform: Windows
RID: win10-x64
Base Path: F:\dotnet\sdk\2.2.0-preview1-007460\
Microsoft .NET Core Shared Framework Host
Version : 2.1.0-preview1-25825-07
Build : 4c165c13bd390adf66f9af30a088d634d3f37a9d
```
4. Our nightly builds are uploaded to MyGet, not NuGet - so ensure the .NET Core MyGet feed is in your nuget configuration in case you need other packages from .NET Core that aren't included in the download. For example, on Windows you could edit `%userprofile%\appdata\roaming\nuget\nuget.config` or on Linux edit `~/.nuget/NuGet/NuGet.Config` to add this line:
```xml
<packageSources>
<add key="myget.dotnetcore" value="https://dotnet.myget.org/F/dotnet-core/api/v3/index.json" />
...
</packageSources>
```
(Documentation for configuring feeds is [here](https://docs.microsoft.com/en-us/nuget/consume-packages/configuring-nuget-behavior).)
## Setup the project
1. Create a new project
- Create a new folder for your app
- Create a new folder for your app and change to that folder
- Create project file by running `dotnet new console`
2. Restore packages so that you're ready to play:
@ -37,25 +59,6 @@ $ dotnet restore
## Consume the new build
Edit your `Program.cs` to consume the new APIs, for example:
```CSharp
using System;
using System.Net;
class Program
{
static void Main(string[] args)
{
WebUtility.HtmlDecode("&amp;", Console.Out);
Console.WriteLine();
Console.WriteLine("Hello World!");
}
}
```
Run the bits:
```
$ dotnet run
```
@ -65,7 +68,7 @@ Rinse and repeat!
## Advanced Scenario - Using a nightly build of Microsoft.NETCore.App
When using the above instructions, your application will run against the same
.NET Core 2.0 runtime that comes with the SDK. That works fine to get up and
.NET Core runtime that comes with the SDK. That works fine to get up and
running quickly. However, there are times when you need to use a nightly build
of Microsoft.NETCore.App which hasn't made its way into the SDK yet. To enable
this, there are two options you can take.
@ -84,8 +87,8 @@ runtime.
```XML
<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>netcoreapp2.0</TargetFramework>
<RuntimeFrameworkVersion>2.0.0-beta-xyz-00</RuntimeFrameworkVersion> <!-- this line -->
<TargetFramework>netcoreapp2.1</TargetFramework>
<RuntimeFrameworkVersion>2.1.0-preview1-25825-07</RuntimeFrameworkVersion> <!-- modify build in this line -->
</PropertyGroup>
```
@ -105,19 +108,21 @@ make it self-contained
```XML
<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>netcoreapp2.0</TargetFramework>
<RuntimeFrameworkVersion>2.0.0-beta-xyz-00</RuntimeFrameworkVersion> <!-- pick nightly build -->
<RuntimeIdentifier>win7-x64</RuntimeIdentifier> <!-- make self-contained -->
<TargetFramework>netcoreapp2.1</TargetFramework>
<RuntimeFrameworkVersion>2.1.0-preview1-25825-07</RuntimeFrameworkVersion> <!-- modify build in this line -->
<RuntimeIdentifier>win-x64</RuntimeIdentifier> <!-- make self-contained -->
</PropertyGroup>
```
```
$ dotnet restore
$ dotnet publish
$ bin\Debug\netcoreapp2.0\win7-x64\publish\App.exe
$ bin\Debug\netcoreapp2.1\win-x64\publish\App.exe
```
## Using your local CoreFx build
## More Advanced Scenario - Using your local CoreFx build
If you built corefx locally with `build -allconfigurations` after building binaries it will build NuGet packages containing them. You can use those in your projects.
To use your local built corefx packages you will need to be a self-contained application and so you will
need to follow the "Self-contained" steps from above. Once you can successfully restore, build, publish,
@ -127,11 +132,11 @@ and run a self-contained application you need the following steps to consume you
Look for a package named `Microsoft.Private.CoreFx.NETCoreApp.<version>.nupkg` under `corefx\bin\packages\Debug` (or Release if you built a release version of corefx).
Once you find the version number (for this example assume it is `4.4.0-beta-25102-0`) you need to add the following line to your project file:
Once you find the version number (for this example assume it is `4.5.0-preview1-25830-0`) you need to add the following line to your project file:
```
<ItemGroup>
<PackageReference Include="Microsoft.Private.CoreFx.NETCoreApp" Version="4.4.0-beta-25102-0" />
<PackageReference Include="Microsoft.Private.CoreFx.NETCoreApp" Version="4.5.0-preview1-25830-0" />
</ItemGroup>
```
@ -146,25 +151,26 @@ you need to tell the tooling to use the assets from your local package. To do th
Replacing the RID in `runtime.win-x64.Microsoft.Private.CoreFx.NETCoreApp` with the RID of your current build.
Note these instructions above were only about updates to the binaries that are part of Microsoft.NETCore.App, if you want to test a package for library that ships in its own nuget package you can follow the same steps above but instead add a package reference to that package instead of "Microsoft.Private.CoreFx.NETCoreApp".
#### 2 - Add your bin directory to the Nuget feed list
By default the dogfooding dotnet SDK will create a Nuget.Config file next to your project, if it doesn't
you can create one. Your config file will need a source for your local corefx package directory as well
as a reference to our nightly dotnet-core feed on myget:
as a reference to our nightly dotnet-core feed on myget. The Nuget.Config file content should be:
```xml
<configuration>
<packageSources>
<add key="local coreclr" value="D:\git\corefx\bin\packages\Debug" />
<add key="local coreclr" value="D:\git\corefx\bin\packages\Debug" /> <!-- Change this to your own output path -->
<add key="dotnet-core" value="https://dotnet.myget.org/F/dotnet-core/api/v3/index.json" />
</packageSources>
</configuration>
```
Obviously **you need to update path in the XML to be the path to output directory for your build**.
Be sure to correct the path to your build output above.
On Windows you also have the alternative of modifying the Nuget.Config
at `%HOMEPATH%\AppData\Roaming\Nuget\Nuget.Config` (`~/.nuget/NuGet/NuGet.Config` on Linux) with the new location.
You also have the alternative of modifying the Nuget.Config
at `%HOMEPATH%\AppData\Roaming\Nuget\Nuget.Config` (Windows) or `~/.nuget/NuGet/NuGet.Config` (Linux) with the new location.
This will allow your new runtime to be used on any 'dotnet restore' run by the current user.
Alternatively you can skip creating this file and pass the path to your package directory using
the -s SOURCE qualifer on the dotnet restore command below. The important part is that somehow
@ -178,9 +184,15 @@ dotnet publish
```
Now your publication directory should contain your local built CoreFx binaries.
#### 3 - Consuming updated packages
#### 3 - Consuming subsequent code changes by overwriting the binary (Alternative 1)
One possible problem with the technique above is that Nuget assumes that distinct builds have distinct version numbers.
To apply changes you subsequently make in your source tree, it's usually easiest to just overwrite the binary in the publish folder. Build the assembly containing your change as normal, then overwrite the assembly in your publish folder and running the app will pick up that binary. This relies on the fact that all the other binaries still match what is in your bin folder so everything works together.
#### 3 - Consuming subsequent code changes by rebuilding the package (Alternative 2)
This is more cumbersome than just overwriting the binaries, but is more correct.
First note that Nuget assumes that distinct builds have distinct version numbers.
Thus if you modify the source and create a new NuGet package you must give it a new version number and use that in your
application's project. Otherwise the dotnet.exe tool will assume that the existing version is fine and you
won't get the updated bits. This is what the Minor Build number is all about. By default it is 0, but you can
@ -188,66 +200,13 @@ give it a value by setting the BuildNumberMinor environment variable.
```bat
set BuildNumberMinor=3
```
before packaging. You should see this number show up in the version number (e.g. 4.4.0-beta-25102-03).
before packaging. You should see this number show up in the version number (e.g. 4.5.0-preview1-25830-03).
As an alternative you can delete the existing copy of the package from the Nuget cache. For example on
Alternatively just delete the existing copy of the package from the Nuget cache. For example on
windows (on Linux substitute ~/ for %HOMEPATH%) you could delete
```bat
%HOMEPATH%\.nuget\packages\Microsoft.Private.CoreFx.NETCoreApp\4.4.0-beta-25102-0
%HOMEPATH%\.nuget\packages\Microsoft.Private.CoreFx.NETCoreApp\4.5.0-preview1-25830-0
%HOMEPATH%\.nuget\packages\runtime.win-x64.microsoft.private.corefx.netcoreapp\4.5.0-preview1-25830-0
```
which should make things work (but is fragile, confirm file timestamps that you are getting the version you expect)
which should make `dotnet restore` now pick up the new copy.
### Consuming individual library packages
The instructions above were only about updates to the binaries that are part of Microsoft.NETCore.App, if you want to test a package
for library that ships in its own nuget package you can follow the same steps above but instead add a package reference to the
individual library package from your `bin\packages\Debug` folder.
## Consuming non-NetStandard assets in a .NET Core 2.0 application
Currently if you reference a NuGet package that does not have a NETStandard asset in your .NET Core 2.0 application, you will hit package
incompatibility errors when trying to restore packages. You can resolve this issue by adding `PackageTargetFallback` property
(MSBuild equivalent of `imports`) to your .csproj:
```XML
<PackageTargetFallback>$(PackageTargetFallback);net45</PackageTargetFallback>
```
Note that this can fix the problem if the package is actually compatible with netcoreapp2.0 (meaning it does not use types/APIs
that are not available in netcoreapp2.0)
For final release, we are considering modifying NuGet behavior to automatically consume the non-netstandard asset if there is no netstandard available.
## Creating a .NET Core 2.0 console application from Visual Studio 2017
File > New > Project > Console App (.NET Core)
By default, Visual Studio creates a netcoreapp1.1 application. After installing the prerequisites mentioned above, you will
need to modify your .csproj to target netcoreapp2.0 and reference the nightly build of Microsoft.NETCore.APP
```XML
<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>netcoreapp2.0</TargetFramework> <!-- this line -->
<RuntimeFrameworkVersion>2.0.0-beta-xyz-00</RuntimeFrameworkVersion> <!-- this line -->
</PropertyGroup>
```
In a future update to Visual Studio, it will no longer be necessary to make this edit.
## Finding specific builds
The URL scheme for the runtime is as follows:
```
https://dotnetcli.azureedge.net/dotnet/master/Installers/$version$/dotnet-$os$-$arch$.$version$.exe
https://dotnetcli.azureedge.net/dotnet/master/Installers/2.0.0-preview1-001915-00/dotnet-win-x64.2.0.0-preview1-001915-00.exe
```
The URL scheme for the SDK & CLI is as follows:
```
https://dotnetcli.azureedge.net/dotnet/Sdk/$version$/dotnet-dev-$os$-$arch.$version$.exe
https://dotnetcli.azureedge.net/dotnet/Sdk/2.0.0-preview1-005791/dotnet-dev-win-x86.2.0.0-preview1-005791.exe
```

View File

@ -44,7 +44,7 @@ Areas are tracked by labels area-&#42; (e.g. area-System.Collections). Each area
|-----------------------------------------------------------------------------------------------|------------------|-------------|
| [area-Infrastructure](https://github.com/dotnet/corefx/labels/area-Infrastructure) | [@weshaggard](https://github.com/weshaggard), [@ericstj](https://github.com/ericstj) |Covers:<ul><li>Packaging</li><li>Build and test infra for CoreFX repo</li><li>VS integration</li></ul><br/> |
| [area-Meta](https://github.com/dotnet/corefx/labels/area-Meta) | [@tarekgh](https://github.com/tarekgh) | Issues without clear association to any specific API/contract, e.g. <ul><li>new contract proposals</li><li>cross-cutting code/test pattern changes (e.g. FxCop failures)</li><li>project-wide docs</li></ul><br/> |
| [area-Serialization](https://github.com/dotnet/corefx/labels/area-Serialization) | [@shmao](https://github.com/shmao), [@zhenlan](https://github.com/zhenlan) | Packages:<ul><li>System.Runtime.Serialization.Xml</li><li>System.Runtime.Serialization.Json</li><li>System.Private.DataContractSerialization</li><li>System.Xml.XmlSerializer</li></ul> Excluded:<ul><li>System.Runtime.Serialization.Formatters</li></ul> |
| [area-Serialization](https://github.com/dotnet/corefx/labels/area-Serialization) | [@huanwu](https://github.com/huanwu), [@zhenlan](https://github.com/zhenlan) | Packages:<ul><li>System.Runtime.Serialization.Xml</li><li>System.Runtime.Serialization.Json</li><li>System.Private.DataContractSerialization</li><li>System.Xml.XmlSerializer</li></ul> Excluded:<ul><li>System.Runtime.Serialization.Formatters</li></ul> |
| **System contract assemblies** | | |
| [System.AppContext](https://github.com/dotnet/corefx/labels/area-System.AppContext) | [@AlexGhiondea](https://github.com/AlexGhiondea) | | |
| [System.Buffers](https://github.com/dotnet/corefx/labels/area-System.Buffers) | [@safern](https://github.com/safern) | |
@ -52,14 +52,14 @@ Areas are tracked by labels area-&#42; (e.g. area-System.Collections). Each area
| [System.Collections](https://github.com/dotnet/corefx/labels/area-System.Collections) |**[@safern](https://github.com/safern)**, [@ianhays](https://github.com/ianhays) | </ul>Excluded:<ul><li>System.Array -> System.Runtime</li></ul> |
| [System.ComponentModel](https://github.com/dotnet/corefx/labels/area-System.ComponentModel) | **[@maryamariyan](https://github.com/maryamariyan)**, [@safern](https://github.com/safern) | |
| [System.ComponentModel.DataAnnotations](https://github.com/dotnet/corefx/labels/area-System.ComponentModel.DataAnnotations) | [@lajones](https://github.com/lajones), [@divega](https://github.com/divega), [@ajcvickers](https://github.com/ajcvickers) | |
| [System.Composition](https://github.com/dotnet/corefx/labels/area-System.Composition) | [@ViktorHofer](https://github.com/ViktorHofer) | |
| [System.Composition](https://github.com/dotnet/corefx/labels/area-System.Composition) | **[@maryamariyan](https://github.com/maryamariyan)**, [@ViktorHofer](https://github.com/ViktorHofer) | |
| [System.Configuration](https://github.com/dotnet/corefx/labels/area-System.Configuration) | [@maryamariyan](https://github.com/maryamariyan) | |
| [System.Console](https://github.com/dotnet/corefx/labels/area-System.Console) | **[@joperezr](https://github.com/joperezr)**, [@ianhays](https://github.com/ianhays) | |
| [System.Data](https://github.com/dotnet/corefx/labels/area-System.Data) | [@saurabh500](https://github.com/saurabh500), [@corivera](https://github.com/corivera) | |
| [System.Data.SqlClient](https://github.com/dotnet/corefx/labels/area-System.Data.SqlClient) | [@saurabh500](https://github.com/saurabh500), [@corivera](https://github.com/corivera) | |
| [System.Diagnostics](https://github.com/dotnet/corefx/labels/area-System.Diagnostics) | **[@joperezr](https://github.com/joperezr)**, [@wtgodbe](https://github.com/wtgodbe) | |
| [System.Diagnostics](https://github.com/dotnet/corefx/labels/area-System.Diagnostics) | **[@joperezr](https://github.com/joperezr)**, [@wtgodbe](https://github.com/wtgodbe) | <ul><li>System.Diagnostics.EventLog [@Anipik](https://github.com/Anipik)</li></ul> |
| [System.Diagnostics.Process](https://github.com/dotnet/corefx/labels/area-System.Diagnostics.Process) | **[@joperezr](https://github.com/joperezr)**, [@wtgodbe](https://github.com/wtgodbe) | |
| [System.Diagnostics.Tracing](https://github.com/dotnet/corefx/labels/area-System.Diagnostics.Tracing) | [@brianrob](https://github.com/brianrob), [@vancem](https://github.com/vancem), [@valenis](https://github.com/valenis)| Packages:<ul><li>System.Diagnostics.DiagnosticSource</li><li>System.Diagnostics.PerformanceCounter</li><li>System.Diagnostics.Tracing</li><li>System.Diagnostics.TraceSource</li></ul><br/> |
| [System.Diagnostics.Tracing](https://github.com/dotnet/corefx/labels/area-System.Diagnostics.Tracing) | [@brianrob](https://github.com/brianrob), [@vancem](https://github.com/vancem), [@valenis](https://github.com/valenis)| Packages:<ul><li>System.Diagnostics.DiagnosticSource</li><li>System.Diagnostics.PerformanceCounter - [@adiaaida](https://github.com/adiaaida)</li><li>System.Diagnostics.Tracing</li><li>System.Diagnostics.TraceSource</li></ul><br/> |
| [System.DirectoryServices](https://github.com/dotnet/corefx/labels/area-System.DirectoryServices) | [@tquerec](https://github.com/tquerec) | |
| [System.Drawing](https://github.com/dotnet/corefx/labels/area-System.Drawing) | [@safern](https://github.com/safern) | |
| [System.Dynamic.Runtime](https://github.com/dotnet/corefx/labels/area-System.Dynamic.Runtime) | [@VSadov](https://github.com/VSadov), [@OmarTawfik](https://github.com/OmarTawfik) | |
@ -68,34 +68,38 @@ Areas are tracked by labels area-&#42; (e.g. area-System.Collections). Each area
| [System.IO.Compression](https://github.com/dotnet/corefx/labels/area-System.IO.Compression) | **[@ViktorHofer](https://github.com/ViktorHofer)**, [@ianhays](https://github.com/ianhays) | |
| [System.Linq](https://github.com/dotnet/corefx/labels/area-System.Linq) | [@VSadov](https://github.com/VSadov), [@OmarTawfik](https://github.com/OmarTawfik) | |
| [System.Linq.Expressions](https://github.com/dotnet/corefx/labels/area-System.Linq.Expressions) | [@VSadov](https://github.com/VSadov), [@OmarTawfik](https://github.com/OmarTawfik) | |
| [System.Linq.Parallel](https://github.com/dotnet/corefx/labels/area-System.Linq.Parallel) | [@kouvel](https://github.com/kouvel) | |
| [System.Linq.Parallel](https://github.com/dotnet/corefx/labels/area-System.Linq.Parallel) | **[@tarekgh](https://github.com/tarekgh)**, [@kouvel](https://github.com/kouvel) | |
| [System.Management](https://github.com/dotnet/corefx/labels/area-System.Management) | **[@Anipik](https://github.com/Anipik)**, [@pjanotti](https://github.com/pjanotti) | WMI |
| [System.Memory](https://github.com/dotnet/corefx/labels/area-System.Memory) | [@KrzysztofCwalina](https://github.com/KrzysztofCwalina), [@ahsonkhan](https://github.com/ahsonkhan) | |
| [System.Net](https://github.com/dotnet/corefx/labels/area-System.Net) | [@davidsh](https://github.com/davidsh), [@Priya91](https://github.com/Priya91), [@wfurt](https://github.com/wfurt) | Included:<ul><li>System.Uri</li></ul> |
| [System.Net.Http](https://github.com/dotnet/corefx/labels/area-System.Net.Http) | [@davidsh](https://github.com/davidsh), [@Priya91](https://github.com/Priya91), [@wfurt](https://github.com/wfurt) | |
| [System.Net.Http.ManagedHandler](https://github.com/dotnet/corefx/labels/area-System.Net.Http.ManagedHandler) | [@geoffkizer](https://github.com/geoffkizer), [@Priya91](https://github.com/Priya91), [@wfurt](https://github.com/wfurt), [@davidsh](https://github.com/davidsh) | |
| [System.Net.Security](https://github.com/dotnet/corefx/labels/area-System.Net.Security) | [@davidsh](https://github.com/davidsh), [@Priya91](https://github.com/Priya91), [@wfurt](https://github.com/wfurt) | |
| [System.Net.Sockets](https://github.com/dotnet/corefx/labels/area-System.Net.Sockets) | [@davidsh](https://github.com/davidsh), [@Priya91](https://github.com/Priya91), [@wfurt](https://github.com/wfurt) | |
| [System.Numerics](https://github.com/dotnet/corefx/labels/area-System.Numerics) | [@eerhardt](https://github.com/eerhardt), [@ViktorHofer](https://github.com/ViktorHofer) | |
| [System.Reflection](https://github.com/dotnet/corefx/labels/area-System.Reflection) | [@dnlharvey](https://github.com/dnlharvey), [@AtsushiKan](https://github.com/AtsushiKan) | |
| [System.Reflection.Emit](https://github.com/dotnet/corefx/labels/area-System.Reflection.Emit) | [@dnlharvey](https://github.com/dnlharvey), [@AtsushiKan](https://github.com/AtsushiKan) | |
| [System.Reflection](https://github.com/dotnet/corefx/labels/area-System.Reflection) | [@AtsushiKan](https://github.com/AtsushiKan) | |
| [System.Reflection.Emit](https://github.com/dotnet/corefx/labels/area-System.Reflection.Emit) | [@AtsushiKan](https://github.com/AtsushiKan) | |
| [System.Reflection.Metadata](https://github.com/dotnet/corefx/labels/area-System.Reflection.Metadata) | [@tmat](https://github.com/tmat), [@nguerrera](https://github.com/nguerrera) | |
| [System.Resources](https://github.com/dotnet/corefx/labels/area-System.Resources) | **[@krwq](https://github.com/krwq)**, [@tarekgh](https://github.com/tarekgh) | |
| [System.Runtime](https://github.com/dotnet/corefx/labels/area-System.Runtime) | **[@joperezr](https://github.com/joperezr)**, [@AlexGhiondea](https://github.com/AlexGhiondea) | Included:<ul><li>System.Runtime.Serialization.Formatters</li><li>System.Runtime.InteropServices.RuntimeInfo</li><li>System.Array</li></ul>Excluded:<ul><li>Path -> System.IO</li><li>StopWatch -> System.Diagnostics</li><li>Uri -> System.Net</li><li>WebUtility -> System.Net</li></ul> |
| [System.Runtime.Caching](https://github.com/dotnet/corefx/labels/area-System.Runtime.Caching) | [@KKhurin](https://github.com/KKhurin), [@zhenlan](https://github.com/zhenlan) | |
| [System.Runtime.CompilerServices](https://github.com/dotnet/corefx/labels/area-System.Runtime.CompilerServices) | **[@joperezr](https://github.com/joperezr)**, [@AlexGhiondea](https://github.com/AlexGhiondea) | |
| [System.Runtime.Extensions](https://github.com/dotnet/corefx/labels/area-System.Runtime.Extensions) | **[@joperezr](https://github.com/joperezr)**, [@AlexGhiondea](https://github.com/AlexGhiondea) | |
| [System.Runtime.InteropServices](https://github.com/dotnet/corefx/labels/area-System.Runtime.InteropServices) | [@tijoytom](https://github.com/tijoytom), [@luqunl](https://github.com/luqunl) | Excluded:<ul><li>System.Runtime.InteropServices.RuntimeInfo</li></ul> |
| [System.Runtime.InteropServices](https://github.com/dotnet/corefx/labels/area-System.Runtime.InteropServices) | [@luqunl](https://github.com/luqunl), [@shrah](https://github.com/shrah) | Excluded:<ul><li>System.Runtime.InteropServices.RuntimeInfo</li></ul> |
| [System.Runtime.Intrinsics](https://github.com/dotnet/corefx/labels/area-System.Runtime.Intrinsics) | [@eerhardt](https://github.com/eerhardt), [@CarolEidt](https://github.com/CarolEidt), [@RussKeldorph](https://github.com/RussKeldorph) | |
| [System.Security](https://github.com/dotnet/corefx/labels/area-System.Security) | [@bartonjs](https://github.com/bartonjs), [@ianhays](https://github.com/ianhays) | |
| System.ServiceModel | N/A | [dotnet/wcf](https://github.com/dotnet/wcf) (except System.ServiceModel.Syndication) |
| [System.ServiceModel.Syndication](https://github.com/dotnet/corefx/labels/area-System.ServiceModel.Syndication) | [@shmao](https://github.com/shmao), [@zhenlan](https://github.com/zhenlan) | |
| [System.ServiceProcess](https://github.com/dotnet/corefx/labels/area-System.ServiceProcess) | [@maryamariyan](https://github.com/maryamariyan) | |
| [System.ServiceModel.Syndication](https://github.com/dotnet/corefx/labels/area-System.ServiceModel.Syndication) | [@huanwu](https://github.com/huanwu), [@zhenlan](https://github.com/zhenlan) | |
| [System.ServiceProcess](https://github.com/dotnet/corefx/labels/area-System.ServiceProcess) | **[@maryamariyan](https://github.com/maryamariyan)**, [@Anipik](https://github.com/Anipik) | |
| [System.Text.Encoding](https://github.com/dotnet/corefx/labels/area-System.Text.Encoding) | **[@krwq](https://github.com/krwq)**, [@tarekgh](https://github.com/tarekgh) | Included:<ul><li>System.Text.Encoding**s**.Web</li></ul> |
| [System.Text.RegularExpressions](https://github.com/dotnet/corefx/labels/area-System.Text.RegularExpressions) | **[@ViktorHofer](https://github.com/ViktorHofer)**, [@Priya91](https://github.com/Priya91) | |
| [System.Threading](https://github.com/dotnet/corefx/labels/area-System.Threading) | [@kouvel](https://github.com/kouvel) | |
| [System.Threading](https://github.com/dotnet/corefx/labels/area-System.Threading) | **[@kouvel](https://github.com/kouvel)**| |
| [System.Transactions](https://github.com/dotnet/corefx/labels/area-System.Transactions) | [@jimcarley](https://github.com/jimcarley), [@qizhanMS](https://github.com/qizhanMS), [@dmetzgar](https://github.com/dmetzgar) | |
| [System.Xml](https://github.com/dotnet/corefx/labels/area-System.Xml) | **[@krwq](https://github.com/krwq)**, [@pjanotti](https://github.com/pjanotti) | |
| [System.Xml](https://github.com/dotnet/corefx/labels/area-System.Xml) | **[@krwq](https://github.com/krwq)**, [@pjanotti](https://github.com/pjanotti) | |
| **Microsoft contract assemblies** | | |
| [Microsoft.CSharp](https://github.com/dotnet/corefx/labels/area-Microsoft.CSharp) | [@VSadov](https://github.com/VSadov), [@OmarTawfik](https://github.com/OmarTawfik) | |
| [Microsoft.VisualBasic](https://github.com/dotnet/corefx/labels/area-Microsoft.VisualBasic) | [@VSadov](https://github.com/VSadov), [@OmarTawfik](https://github.com/OmarTawfik) | |
| [Microsoft.Win32](https://github.com/dotnet/corefx/labels/area-Microsoft.Win32) | [@maryamariyan](https://github.com/maryamariyan) | |
| [Microsoft.Win32](https://github.com/dotnet/corefx/labels/area-Microsoft.Win32) | **[@maryamariyan](https://github.com/maryamariyan)**, , [@Anipik](https://github.com/Anipik) | |
Note: Area triage will apply the new scheme (issue types and assignee) throughout 2016.

View File

@ -1,105 +1,3 @@
# .NET Core Libraries (CoreFX)
# Mono fork of .NET Core Libraries (CoreFX)
This repo contains the library implementation (called "CoreFX") for .NET Core. It includes System.Collections, System.IO, System.Xml, and many other components.
The corresponding [.NET Core Runtime repo](https://github.com/dotnet/coreclr) (called "CoreCLR") contains the runtime implementation for .NET Core. It includes RyuJIT, the .NET GC, and many other components.
Runtime-specific library code ([mscorlib](https://github.com/dotnet/coreclr/tree/master/src/mscorlib)) lives in the CoreCLR repo. It needs to be built and versioned in tandem with the runtime. The rest of CoreFX is agnostic of runtime-implementation and can be run on any compatible .NET runtime (e.g. [CoreRT](https://github.com/dotnet/corert)).
## .NET Core
Official Starting Page: http://dotnet.github.io
* [How to use .NET Core](https://github.com/dotnet/core/#get-started) (with VS, VS Code, command-line CLI)
* [Install official releases](https://www.microsoft.com/net/core)
* [Documentation](https://docs.microsoft.com/en-us/dotnet) (Get Started, Tutorials, Porting from .NET Framework, API reference, ...)
* [Deploying apps](https://docs.microsoft.com/en-us/dotnet/articles/core/preview3/deploying)
* [Supported OS versions](https://github.com/dotnet/core/blob/master/roadmap.md#technology-roadmaps)
* [Roadmap](https://github.com/dotnet/core/blob/master/roadmap.md)
* [Releases](https://github.com/dotnet/core/tree/master/release-notes)
* [Bringing more APIs to .NET Core](https://github.com/dotnet/corefx/blob/master/Documentation/project-docs/porting.md) (and why some APIs will be left out)
## How to Engage, Contribute and Provide Feedback
Some of the best ways to contribute are to try things out, file bugs, join in design conversations, and fix issues.
* [Dogfooding daily builds](https://github.com/dotnet/corefx/blob/master/Documentation/project-docs/dogfooding.md)
* If you have a question or idea, [file a new issue](https://github.com/dotnet/corefx/issues/new).
If you are having issues with the "full" .NET Framework (also called "Desktop"), the best way to file a bug is at [Connect](http://connect.microsoft.com/VisualStudio) or through [Product Support](https://support.microsoft.com/en-us/contactus?ws=support) if you have a contract.
### Issue Guide
This section is **in progress** here: [New contributor Docs - Issues](https://github.com/dotnet/corefx/wiki/New-contributor-Docs#issue-guide) (feel free to make it better - it's easy-to-edit wiki with RW permissions to everyone!)
Each issue area has one or more Microsoft owners, who are [listed here](https://github.com/dotnet/corefx/blob/master/Documentation/project-docs/issue-guide.md).
### Contributing Guide
This section is **in progress** here: [New contributor Docs - Contributing](https://github.com/dotnet/corefx/wiki/New-contributor-Docs#contributing-guide) (feel free to make it better - it's easy-to-edit wiki with RW permissions to everyone!)
### Useful Links
* CoreFX source index: https://source.dot.net
* API Reference docs: https://docs.microsoft.com/en-us/dotnet/core/api
* .NET API Catalog: http://apisof.net (incl. APIs from daily builds and API usage info)
* "Full" .NET Framework source index: https://referencesource.microsoft.com
### Community
* General .NET OSS discussions: [.NET Foundation forums](http://forums.dotnetfoundation.org)
* Chat with other community members [![Join the chat at https://gitter.im/dotnet/corefx](https://badges.gitter.im/Join%20Chat.svg)](https://gitter.im/dotnet/corefx?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge) [![.NET Slack Status](https://aspnetcoreslack.herokuapp.com/badge.svg?2)](http://tattoocoder.com/aspnet-slack-sign-up)
This project has adopted the code of conduct defined by the [Contributor Covenant](http://contributor-covenant.org/)
to clarify expected behavior in our community. For more information, see the [.NET Foundation Code of Conduct](http://www.dotnetfoundation.org/code-of-conduct).
### Reporting security issues and security bugs
Security issues and bugs should be reported privately, via email, to the Microsoft Security Response Center (MSRC) <secure@microsoft.com>. You should receive a response within 24 hours. If for some reason you do not, please follow up via email to ensure we received your original message. Further information, including the MSRC PGP key, can be found in the [Security TechCenter](https://technet.microsoft.com/en-us/security/ff852094.aspx).
Also see info about related [Microsoft .NET Core and ASP.NET Core Bug Bounty Program](https://technet.microsoft.com/en-us/mt764065.aspx).
## License
.NET Core (including the corefx repo) is licensed under the [MIT license](LICENSE.TXT).
## .NET Foundation
.NET Core is a [.NET Foundation](http://www.dotnetfoundation.org/projects) project.
There are many .NET related projects on GitHub.
- [.NET home repo](https://github.com/Microsoft/dotnet) - links to 100s of .NET projects, from Microsoft and the community.
- [ASP.NET Core home](https://github.com/aspnet/home) - the best place to start learning about ASP.NET Core.
## CoreFX Project
### Daily Builds
Daily builds of .NET Core components are published to [dotnet-core MyGet gallery](https://dotnet.myget.org/gallery/dotnet-core).
The latest version number of each library can be seen in that gallery.
### Build & Test Status
Note: See officially supported [OS versions](https://github.com/dotnet/core/blob/master/roadmap.md#technology-roadmaps).
| | Inner x64 Debug | Inner x64 Release | Outer x64 Debug | Outer x64 Release |
|:---|----------------:|------------------:|----------------:|------------------:|
|**CentOS 7.1**|[![x64-debug](https://ci.dot.net/job/dotnet_corefx/job/master/job/centos7.1_debug/badge/icon)](https://ci.dot.net/job/dotnet_corefx/job/master/job/centos7.1_debug/lastCompletedBuild/testReport)|[![x64-release](https://ci.dot.net/job/dotnet_corefx/job/master/job/centos7.1_release/badge/icon)](https://ci.dot.net/job/dotnet_corefx/job/master/job/centos7.1_release/lastCompletedBuild/testReport)|[![x64-debug](https://ci.dot.net/job/dotnet_corefx/job/master/job/outerloop_netcoreapp_centos7.1_debug/badge/icon)](https://ci.dot.net/job/dotnet_corefx/job/master/job/outerloop_netcoreapp_centos7.1_debug/lastCompletedBuild/testReport)|[![x64-release](https://ci.dot.net/job/dotnet_corefx/job/master/job/outerloop_netcoreapp_centos7.1_release/badge/icon)](https://ci.dot.net/job/dotnet_corefx/job/master/job/outerloop_netcoreapp_centos7.1_release/lastCompletedBuild/testReport)|
|**Debian 8**|[![x64-debug](https://ci.dot.net/job/dotnet_corefx/job/master/job/debian8.4_debug/badge/icon)](https://ci.dot.net/job/dotnet_corefx/job/master/job/debian8.4_debug/lastCompletedBuild/testReport)|[![x64-release](https://ci.dot.net/job/dotnet_corefx/job/master/job/debian8.4_release/badge/icon)](https://ci.dot.net/job/dotnet_corefx/job/master/job/debian8.4_release/lastCompletedBuild/testReport)|[![x64-debug](https://ci.dot.net/job/dotnet_corefx/job/master/job/outerloop_netcoreapp_debian8.4_debug/badge/icon)](https://ci.dot.net/job/dotnet_corefx/job/master/job/outerloop_netcoreapp_debian8.4_debug/lastCompletedBuild/testReport)|[![x64-release](https://ci.dot.net/job/dotnet_corefx/job/master/job/outerloop_netcoreapp_debian8.4_release/badge/icon)](https://ci.dot.net/job/dotnet_corefx/job/master/job/outerloop_netcoreapp_debian8.4_release/lastCompletedBuild/testReport)|
|**Fedora 24**|[![x64-debug](https://ci.dot.net/job/dotnet_corefx/job/master/job/fedora24_debug/badge/icon)](https://ci.dot.net/job/dotnet_corefx/job/master/job/fedora24_debug/lastCompletedBuild/testReport)|[![x64-release](https://ci.dot.net/job/dotnet_corefx/job/master/job/fedora24_release/badge/icon)](https://ci.dot.net/job/dotnet_corefx/job/master/job/fedora24_release/lastCompletedBuild/testReport)|[![x64-debug](https://ci.dot.net/job/dotnet_corefx/job/master/job/outerloop_netcoreapp_fedora24_debug/badge/icon)](https://ci.dot.net/job/dotnet_corefx/job/master/job/outerloop_netcoreapp_fedora24_debug/lastCompletedBuild/testReport)|[![x64-release](https://ci.dot.net/job/dotnet_corefx/job/master/job/outerloop_netcoreapp_fedora24_release/badge/icon)](https://ci.dot.net/job/dotnet_corefx/job/master/job/outerloop_netcoreapp_fedora24_release/lastCompletedBuild/testReport)|
|**OS X 10.12**|[![x64-debug](https://ci.dot.net/job/dotnet_corefx/job/master/job/osx10.12_debug/badge/icon)](https://ci.dot.net/job/dotnet_corefx/job/master/job/osx10.12_debug/lastCompletedBuild/testReport)|[![x64-release](https://ci.dot.net/job/dotnet_corefx/job/master/job/osx10.12_release/badge/icon)](https://ci.dot.net/job/dotnet_corefx/job/master/job/osx10.12_release/lastCompletedBuild/testReport)|[![x64-debug](https://ci.dot.net/job/dotnet_corefx/job/master/job/outerloop_netcoreapp_osx_debug/badge/icon)](https://ci.dot.net/job/dotnet_corefx/job/master/job/outerloop_netcoreapp_osx_debug/lastCompletedBuild/testReport)|[![x64-release](https://ci.dot.net/job/dotnet_corefx/job/master/job/outerloop_netcoreapp_osx_release/badge/icon)](https://ci.dot.net/job/dotnet_corefx/job/master/job/outerloop_netcoreapp_osx_release/lastCompletedBuild/testReport)|
|**Red Hat 7.2**|[![x64-debug](https://ci.dot.net/job/dotnet_corefx/job/master/job/rhel7.2_debug/badge/icon)](https://ci.dot.net/job/dotnet_corefx/job/master/job/rhel7.2_debug/lastCompletedBuild/testReport)|[![x64-release](https://ci.dot.net/job/dotnet_corefx/job/master/job/rhel7.2_release/badge/icon)](https://ci.dot.net/job/dotnet_corefx/job/master/job/rhel7.2_release/lastCompletedBuild/testReport)|[![x64-debug](https://ci.dot.net/job/dotnet_corefx/job/master/job/outerloop_netcoreapp_rhel7.2_debug/badge/icon)](https://ci.dot.net/job/dotnet_corefx/job/master/job/outerloop_netcoreapp_rhel7.2_debug/lastCompletedBuild/testReport)|[![x64-release](https://ci.dot.net/job/dotnet_corefx/job/master/job/outerloop_netcoreapp_rhel7.2_release/badge/icon)](https://ci.dot.net/job/dotnet_corefx/job/master/job/outerloop_netcoreapp_rhel7.2_release/lastCompletedBuild/testReport)|
|**Ubuntu 14.04**|[![x64-debug](https://ci.dot.net/job/dotnet_corefx/job/master/job/ubuntu14.04_debug/badge/icon)](https://ci.dot.net/job/dotnet_corefx/job/master/job/ubuntu14.04_debug/lastCompletedBuild/testReport)|[![x64-release](https://ci.dot.net/job/dotnet_corefx/job/master/job/ubuntu14.04_release/badge/icon)](https://ci.dot.net/job/dotnet_corefx/job/master/job/ubuntu14.04_release/lastCompletedBuild/testReport)|[![x64-debug](https://ci.dot.net/job/dotnet_corefx/job/master/job/outerloop_netcoreapp_ubuntu14.04_debug/badge/icon)](https://ci.dot.net/job/dotnet_corefx/job/master/job/outerloop_netcoreapp_ubuntu14.04_debug/lastCompletedBuild/testReport)|[![x64-release](https://ci.dot.net/job/dotnet_corefx/job/master/job/outerloop_netcoreapp_ubuntu14.04_release/badge/icon)](https://ci.dot.net/job/dotnet_corefx/job/master/job/outerloop_netcoreapp_ubuntu14.04_release/lastCompletedBuild/testReport)|
|**Ubuntu 16.04**|[![x64-debug](https://ci.dot.net/job/dotnet_corefx/job/master/job/ubuntu16.04_debug/badge/icon)](https://ci.dot.net/job/dotnet_corefx/job/master/job/ubuntu16.04_debug/lastCompletedBuild/testReport)|[![x64-release](https://ci.dot.net/job/dotnet_corefx/job/master/job/ubuntu16.04_release/badge/icon)](https://ci.dot.net/job/dotnet_corefx/job/master/job/ubuntu16.04_release/lastCompletedBuild/testReport)|[![x64-debug](https://ci.dot.net/job/dotnet_corefx/job/master/job/outerloop_netcoreapp_ubuntu16.04_debug/badge/icon)](https://ci.dot.net/job/dotnet_corefx/job/master/job/outerloop_netcoreapp_ubuntu16.04_debug/lastCompletedBuild/testReport)|[![x64-release](https://ci.dot.net/job/dotnet_corefx/job/master/job/outerloop_netcoreapp_ubuntu16.04_release/badge/icon)](https://ci.dot.net/job/dotnet_corefx/job/master/job/outerloop_netcoreapp_ubuntu16.04_release/lastCompletedBuild/testReport)|
|**Ubuntu 16.10**|[![x64-debug](https://ci.dot.net/job/dotnet_corefx/job/master/job/ubuntu16.10_debug/badge/icon)](https://ci.dot.net/job/dotnet_corefx/job/master/job/ubuntu16.10_debug/lastCompletedBuild/testReport)|[![x64-release](https://ci.dot.net/job/dotnet_corefx/job/master/job/ubuntu16.10_release/badge/icon)](https://ci.dot.net/job/dotnet_corefx/job/master/job/ubuntu16.10_release/lastCompletedBuild/testReport)|[![x64-debug](https://ci.dot.net/job/dotnet_corefx/job/master/job/outerloop_netcoreapp_ubuntu16.10_debug/badge/icon)](https://ci.dot.net/job/dotnet_corefx/job/master/job/outerloop_netcoreapp_ubuntu16.10_debug/lastCompletedBuild/testReport)|[![x64-release](https://ci.dot.net/job/dotnet_corefx/job/master/job/outerloop_netcoreapp_ubuntu16.10_release/badge/icon)](https://ci.dot.net/job/dotnet_corefx/job/master/job/outerloop_netcoreapp_ubuntu16.10_release/lastCompletedBuild/testReport)|
|**PortableLinux**|[![x64-debug](https://ci.dot.net/job/dotnet_corefx/job/master/job/portablelinux_debug/badge/icon)](https://ci.dot.net/job/dotnet_corefx/job/master/job/portablelinux_debug/lastCompletedBuild/testReport)|[![x64-release](https://ci.dot.net/job/dotnet_corefx/job/master/job/portablelinux_release/badge/icon)](https://ci.dot.net/job/dotnet_corefx/job/master/job/portablelinux_release/lastCompletedBuild/testReport)|[![x64-debug](https://ci.dot.net/job/dotnet_corefx/job/master/job/outerloop_netcoreapp_portablelinux_debug/badge/icon)](https://ci.dot.net/job/dotnet_corefx/job/master/job/outerloop_netcoreapp_portablelinux_debug/lastCompletedBuild/testReport)|[![x64-release](https://ci.dot.net/job/dotnet_corefx/job/master/job/outerloop_netcoreapp_portablelinux_release/badge/icon)](https://ci.dot.net/job/dotnet_corefx/job/master/job/outerloop_netcoreapp_portablelinux_release/lastCompletedBuild/testReport)|
|**Windows 7**| | |[![x64-debug](https://ci.dot.net/job/dotnet_corefx/job/master/job/outerloop_netcoreapp_win7_debug/badge/icon)](https://ci.dot.net/job/dotnet_corefx/job/master/job/outerloop_netcoreapp_win7_debug/lastCompletedBuild/testReport)|[![x64-release](https://ci.dot.net/job/dotnet_corefx/job/master/job/outerloop_netcoreapp_win7_release/badge/icon)](https://ci.dot.net/job/dotnet_corefx/job/master/job/outerloop_netcoreapp_win7_release/lastCompletedBuild/testReport)|
|**Windows 8.1**|(x86) [![x64-debug](https://ci.dot.net/job/dotnet_corefx/job/master/job/windows_nt_debug/badge/icon)](https://ci.dot.net/job/dotnet_corefx/job/master/job/windows_nt_debug/lastCompletedBuild/testReport)|[![x64-release](https://ci.dot.net/job/dotnet_corefx/job/master/job/windows_nt_release/badge/icon)](https://ci.dot.net/job/dotnet_corefx/job/master/job/windows_nt_release/lastCompletedBuild/testReport)|[![x64-debug](https://ci.dot.net/job/dotnet_corefx/job/master/job/outerloop_netcoreapp_windows_nt_debug/badge/icon)](https://ci.dot.net/job/dotnet_corefx/job/master/job/outerloop_netcoreapp_windows_nt_debug/lastCompletedBuild/testReport)|[![x64-release](https://ci.dot.net/job/dotnet_corefx/job/master/job/outerloop_netcoreapp_windows_nt_release/badge/icon)](https://ci.dot.net/job/dotnet_corefx/job/master/job/outerloop_netcoreapp_windows_nt_release/lastCompletedBuild/testReport)|
|**Code Coverage (Windows)**| | |[![code coverage](https://ci.dot.net/job/dotnet_corefx/job/master/job/code_coverage_windows/badge/icon)](https://ci.dot.net/job/dotnet_corefx/job/master/job/code_coverage_windows/Code_Coverage_Report)|
Tracking https://github.com/dotnet/corefx/tree/release/2.1 branch

View File

@ -224,3 +224,86 @@ descriptions are © 1997-2005 Sean Eron Anderson. The code and descriptions are
distributed in the hope that they will be useful, but WITHOUT ANY WARRANTY and
without even the implied warranty of merchantability or fitness for a particular
purpose.
License notice for Brotli
--------------------------------------
Copyright (c) 2009, 2010, 2013-2016 by the Brotli Authors.
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.
compress_fragment.c:
Copyright (c) 2011, Google Inc.
All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are
met:
* Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above
copyright notice, this list of conditions and the following disclaimer
in the documentation and/or other materials provided with the
distribution.
* Neither the name of Google Inc. nor the names of its
contributors may be used to endorse or promote products derived from
this software without specific prior written permission.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
""AS IS"" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
decode_fuzzer.c:
Copyright (c) 2015 The Chromium Authors. All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are
met:
* Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above
copyright notice, this list of conditions and the following disclaimer
in the documentation and/or other materials provided with the
distribution.
* Neither the name of Google Inc. nor the names of its
contributors may be used to endorse or promote products derived from
this software without specific prior written permission.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
""AS IS"" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."

View File

@ -1,4 +1,4 @@
#!/usr/bin/env bash
working_tree_root="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
$working_tree_root/run.sh build-managed $*
$working_tree_root/run.sh build-managed "$@"
exit $?

View File

@ -1,5 +1,5 @@
#!/usr/bin/env bash
working_tree_root="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
#The Run Command Tool is calling src/Native/build-native.sh
$working_tree_root/run.sh build-native $*
$working_tree_root/run.sh build-native "$@"
exit $?

View File

@ -1,4 +1,4 @@
#!/usr/bin/env bash
working_tree_root="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
$working_tree_root/run.sh build-managed -packages $*
$working_tree_root/run.sh build-managed -packages "$@"
exit $?

View File

@ -38,10 +38,10 @@ if [ "$1" != "" ] && [[ "$1" != -* ]]; then
fi
fi
"$__scriptpath/build-native.sh" $*
"$__scriptpath/build-native.sh" "$@"
if [ $? -ne 0 ];then
exit 1
fi
"$__scriptpath/build-managed.sh" -BuildPackages=true $*
"$__scriptpath/build-managed.sh" -BuildPackages=true "$@"
exit $?

View File

@ -153,7 +153,7 @@
},
"inputs": {
"filename": "docker",
"arguments": "run $(PB_DockerCommonRunArgs) $(PB_DockerVolumeName)/sync.sh -p -- /p:ArchGroup=$(PB_Architecture)",
"arguments": "run $(PB_DockerCommonRunArgs) $(PB_DockerVolumeName)/sync.sh $(PB_SyncArguments)",
"workingFolder": "",
"failOnStandardError": "false"
}
@ -205,6 +205,7 @@
"alwaysRun": true,
"displayName": "Copy Files to: $(Build.StagingDirectory)\\BuildLogs",
"timeoutInMinutes": 0,
"condition": "succeededOrFailed()",
"refName": "CopyFiles1",
"task": {
"id": "5bfb729a-a7c8-4a78-a7c3-8d717bb7c13c",
@ -227,6 +228,7 @@
"alwaysRun": true,
"displayName": "Publish Artifact: BuildLogs",
"timeoutInMinutes": 0,
"condition": "succeededOrFailed()",
"refName": "PublishBuildArtifacts2",
"task": {
"id": "2ff763a7-ce83-4e1f-bc89-0ae63477cebe",
@ -246,9 +248,10 @@
"environment": {},
"enabled": true,
"continueOnError": true,
"alwaysRun": true,
"alwaysRun": false,
"displayName": "Cleanup Docker",
"timeoutInMinutes": 0,
"condition": "always()",
"refName": "Task12",
"task": {
"id": "d9bafed4-0b18-4f58-968d-86655b4d2ce9",
@ -266,9 +269,10 @@
"environment": {},
"enabled": true,
"continueOnError": true,
"alwaysRun": true,
"alwaysRun": false,
"displayName": "Cleanup VSTS Agent",
"timeoutInMinutes": 0,
"condition": "always()",
"refName": "Task13",
"task": {
"id": "d9bafed4-0b18-4f58-968d-86655b4d2ce9",
@ -342,7 +346,7 @@
"value": "Release"
},
"PB_DockerCommonRunArgs": {
"value": "--rm --name $(PB_DockerContainerName) -v \"$(PB_GitDirectory):$(PB_DockerVolumeName)\" -w=\"$(PB_DockerVolumeName)\" $(PB_DockerImageName)"
"value": "--rm --name $(PB_DockerContainerName) -v \"$(PB_GitDirectory):$(PB_DockerVolumeName)\" -w=\"$(PB_DockerVolumeName)\" -e \"PACKAGEVERSIONPROPSURL=$(PB_PackageVersionPropsUrl)\" $(PB_DockerImageName)"
},
"PB_DockerContainerName": {
"value": "corefx-cross-$(Build.BuildId)"
@ -396,6 +400,16 @@
"VsoPassword": {
"value": null,
"isSecret": true
},
"PB_SyncArguments": {
"value": "-p -- /p:ArchGroup=$(PB_Architecture)",
"allowOverride": true
},
"PB_PackageVersionPropsUrl": {
"value": ""
},
"PB_AssetRootUrl": {
"value": ""
}
},
"demands": [
@ -442,6 +456,7 @@
},
"processParameters": {},
"quality": "definition",
"drafts": [],
"queue": {
"id": 36,
"name": "DotNet-Build",
@ -461,7 +476,7 @@
"description": "Visual Studio and DevDiv team project for git source code repositories. Work items will be added for Adams, Dev14 work items are tracked in vstfdevdiv. ",
"url": "https://devdiv.visualstudio.com/DefaultCollection/_apis/projects/0bdbc590-a062-4c3f-b0f6-9383f67865ee",
"state": "wellFormed",
"revision": 418098167,
"revision": 418098432,
"visibility": "organization"
}
}
}

View File

@ -85,6 +85,7 @@
"alwaysRun": false,
"displayName": "Create host machine tools sandbox",
"timeoutInMinutes": 0,
"refName": "Task5",
"task": {
"id": "5bfb729a-a7c8-4a78-a7c3-8d717bb7c13c",
"versionSpec": "2.*",
@ -92,7 +93,7 @@
},
"inputs": {
"SourceFolder": "$(PB_GitDirectory)",
"Contents": "init-tools.sh\nBuildToolsVersion.txt\nDotnetCLIVersion.txt\ninit-tools.msbuild",
"Contents": "init-tools.sh\nBuildToolsVersion.txt\nDotnetCLIVersion.txt\ninit-tools.msbuild\ndependencies.props",
"TargetFolder": "$(DockerHost_Sandbox)",
"CleanTargetFolder": "false",
"OverWrite": "false",
@ -100,6 +101,7 @@
}
},
{
"environment": {},
"enabled": true,
"continueOnError": false,
"alwaysRun": false,
@ -205,6 +207,7 @@
"alwaysRun": false,
"displayName": "Build tests",
"timeoutInMinutes": 0,
"condition": "and(succeeded(), ne(variables.PB_SkipTests, 'true'), ne(variables.PB_SkipTestBuild, 'true'))",
"refName": "Task10",
"task": {
"id": "d9bafed4-0b18-4f58-968d-86655b4d2ce9",
@ -225,6 +228,7 @@
"alwaysRun": false,
"displayName": "Create Helix Test Jobs",
"timeoutInMinutes": 0,
"condition": "and(succeeded(), ne(variables.PB_SkipTests, 'true'), ne(variables.PB_EnableCloudTest, 'false'))",
"refName": "Task11",
"task": {
"id": "d9bafed4-0b18-4f58-968d-86655b4d2ce9",
@ -265,6 +269,7 @@
"alwaysRun": true,
"displayName": "Copy Files to: $(Build.StagingDirectory)\\BuildLogs",
"timeoutInMinutes": 0,
"condition": "succeededOrFailed()",
"refName": "CopyFiles1",
"task": {
"id": "5bfb729a-a7c8-4a78-a7c3-8d717bb7c13c",
@ -287,6 +292,7 @@
"alwaysRun": true,
"displayName": "Publish Artifact: BuildLogs",
"timeoutInMinutes": 0,
"condition": "succeededOrFailed()",
"refName": "PublishBuildArtifacts2",
"task": {
"id": "2ff763a7-ce83-4e1f-bc89-0ae63477cebe",
@ -306,9 +312,10 @@
"environment": {},
"enabled": true,
"continueOnError": true,
"alwaysRun": true,
"alwaysRun": false,
"displayName": "Cleanup Docker",
"timeoutInMinutes": 0,
"condition": "always()",
"refName": "Task14",
"task": {
"id": "d9bafed4-0b18-4f58-968d-86655b4d2ce9",
@ -326,9 +333,10 @@
"environment": {},
"enabled": true,
"continueOnError": true,
"alwaysRun": true,
"alwaysRun": false,
"displayName": "Cleanup VSTS Agent",
"timeoutInMinutes": 0,
"condition": "always()",
"refName": "Task15",
"task": {
"id": "d9bafed4-0b18-4f58-968d-86655b4d2ce9",
@ -416,7 +424,7 @@
"allowOverride": true
},
"PB_DockerCommonRunArgs": {
"value": "--rm --name $(PB_DockerContainerName) -v \"$(PB_GitDirectory):$(PB_DockerVolumeName)\" -w=\"$(PB_DockerVolumeName)\" $(PB_DockerImageName)"
"value": "--rm --name $(PB_DockerContainerName) -v \"$(PB_GitDirectory):$(PB_DockerVolumeName)\" -w=\"$(PB_DockerVolumeName)\" -e \"PACKAGEVERSIONPROPSURL=$(PB_PackageVersionPropsUrl)\" $(PB_DockerImageName)"
},
"PB_DockerContainerName": {
"value": "corefx-$(Build.BuildId)"
@ -471,6 +479,16 @@
"VsoPassword": {
"value": null,
"isSecret": true
},
"PB_SkipTests": {
"value": "false",
"allowOverride": true
},
"PB_PackageVersionPropsUrl": {
"value": ""
},
"PB_AssetRootUrl": {
"value": ""
}
},
"demands": [
@ -516,6 +534,7 @@
},
"processParameters": {},
"quality": "definition",
"drafts": [],
"queue": {
"id": 36,
"name": "DotNet-Build",
@ -535,7 +554,7 @@
"description": "Visual Studio and DevDiv team project for git source code repositories. Work items will be added for Adams, Dev14 work items are tracked in vstfdevdiv. ",
"url": "https://devdiv.visualstudio.com/DefaultCollection/_apis/projects/0bdbc590-a062-4c3f-b0f6-9383f67865ee",
"state": "wellFormed",
"revision": 418098167,
"revision": 418098432,
"visibility": "organization"
}
}
}

View File

@ -145,6 +145,7 @@
"alwaysRun": false,
"displayName": "Run $(Agent.BuildDirectory)/s/corefx/build-tests.sh",
"timeoutInMinutes": 0,
"condition": "and(succeeded(), ne(variables.PB_SkipTests, 'true'))",
"refName": "Task8",
"task": {
"id": "d9bafed4-0b18-4f58-968d-86655b4d2ce9",
@ -165,6 +166,7 @@
"alwaysRun": false,
"displayName": "Create Helix Test Jobs",
"timeoutInMinutes": 0,
"condition": "and(succeeded(), ne(variables.PB_SkipTests, 'true'), ne(variables.PB_EnableCloudTest, 'false'))",
"refName": "Task9",
"task": {
"id": "d9bafed4-0b18-4f58-968d-86655b4d2ce9",
@ -205,6 +207,7 @@
"alwaysRun": true,
"displayName": "Copy Files to: $(Build.StagingDirectory)\\BuildLogs",
"timeoutInMinutes": 0,
"condition": "succeededOrFailed()",
"refName": "CopyFiles1",
"task": {
"id": "5bfb729a-a7c8-4a78-a7c3-8d717bb7c13c",
@ -227,6 +230,7 @@
"alwaysRun": true,
"displayName": "Publish Artifact: BuildLogs",
"timeoutInMinutes": 0,
"condition": "succeededOrFailed()",
"refName": "PublishBuildArtifacts2",
"task": {
"id": "2ff763a7-ce83-4e1f-bc89-0ae63477cebe",
@ -328,6 +332,19 @@
"PB_CreateHelixArguments": {
"value": "/t:CloudBuild /p:ArchGroup=x64 /p:ConfigurationGroup=Release /p:\"EnableCloudTest=true /p:\"TestProduct=corefx /p:\"TimeoutInSeconds=1200\" /p:\"TargetOS=OSX\" /p:FilterToOSGroup=OSX",
"allowOverride": true
},
"PB_SkipTests": {
"value": "false",
"allowOverride": true
},
"PB_PackageVersionPropsUrl": {
"value": ""
},
"PACKAGEVERSIONPROPSURL": {
"value": "$(PB_PackageVersionPropsUrl)"
},
"PB_AssetRootUrl": {
"value": ""
}
},
"demands": [
@ -373,6 +390,7 @@
},
"processParameters": {},
"quality": "definition",
"drafts": [],
"queue": {
"id": 330,
"name": "DotNetCore-Build",
@ -392,7 +410,7 @@
"description": "Visual Studio and DevDiv team project for git source code repositories. Work items will be added for Adams, Dev14 work items are tracked in vstfdevdiv. ",
"url": "https://devdiv.visualstudio.com/DefaultCollection/_apis/projects/0bdbc590-a062-4c3f-b0f6-9383f67865ee",
"state": "wellFormed",
"revision": 418098167,
"revision": 418098432,
"visibility": "organization"
}
}

View File

@ -18,7 +18,7 @@
"scriptName": "",
"arguments": "-path $(build.SourcesDirectory)\\corefx",
"workingFolder": "",
"inlineScript": "param($path)\n\nif (Test-Path $path){\n Stop-Process -processname msbuild -ErrorAction Ignore -Verbose\n Stop-Process -processname dotnet -ErrorAction Ignore -Verbose\n Stop-Process -processname vbcscompiler -ErrorAction Ignore -Verbose\n # this will print out an error each time a file can't be deleted.\n Remove-Item -Recurse -Force $path\n }\n",
"inlineScript": "param($path)\nif ($path -and (Test-Path $path)){\nStop-Process -processname msbuild -ErrorAction Ignore -Verbose\nStop-Process -processname dotnet -ErrorAction Ignore -Verbose\nStop-Process -processname vbcscompiler -ErrorAction Ignore -Verbose\n$emptyFolder = (New-Item -ItemType Directory (Join-Path -Path $env:TEMP -ChildPath ([System.IO.Path]::GetRandomFileName()))).FullName\nrobocopy $emptyFolder $path /purge\nRemove-Item -Recurse -Force $path,$emptyFolder \nexit 0\n}",
"failOnStandardError": "true"
}
},
@ -69,7 +69,7 @@
"alwaysRun": false,
"displayName": "Install Signing Plugin",
"timeoutInMinutes": 0,
"condition": "ne(variables['PB_SignType'], 'oss')",
"condition": "and(succeeded(), in(variables.PB_SignType, 'real', 'test'))",
"refName": "Task4",
"task": {
"id": "30666190-6959-11e5-9f96-f56098202fef",
@ -183,50 +183,6 @@
"failOnStandardError": "false"
}
},
{
"environment": {},
"enabled": true,
"continueOnError": true,
"alwaysRun": true,
"displayName": "Copy Files to: $(Build.StagingDirectory)\\BuildLogs",
"timeoutInMinutes": 0,
"refName": "CopyFiles1",
"task": {
"id": "5bfb729a-a7c8-4a78-a7c3-8d717bb7c13c",
"versionSpec": "2.*",
"definitionType": "task"
},
"inputs": {
"SourceFolder": "$(Build.SourcesDirectory)\\corefx",
"Contents": "*.log",
"TargetFolder": "$(Build.StagingDirectory)\\BuildLogs",
"CleanTargetFolder": "false",
"OverWrite": "false",
"flattenFolders": "false"
}
},
{
"environment": {},
"enabled": true,
"continueOnError": true,
"alwaysRun": true,
"displayName": "Publish Artifact: BuildLogs",
"timeoutInMinutes": 0,
"refName": "PublishBuildArtifacts2",
"task": {
"id": "2ff763a7-ce83-4e1f-bc89-0ae63477cebe",
"versionSpec": "1.*",
"definitionType": "task"
},
"inputs": {
"PathtoPublish": "$(Build.StagingDirectory)\\BuildLogs",
"ArtifactName": "BuildLogs",
"ArtifactType": "Container",
"TargetPath": "\\\\my\\share\\$(Build.DefinitionName)\\$(Build.BuildNumber)",
"Parallel": "false",
"ParallelCount": "8"
}
},
{
"environment": {},
"enabled": true,
@ -252,6 +208,52 @@
"SymbolsArtifactName": "Symbols_$(PB_ConfigurationGroup)"
}
},
{
"environment": {},
"enabled": true,
"continueOnError": true,
"alwaysRun": true,
"displayName": "Copy Files to: $(Build.StagingDirectory)\\BuildLogs",
"timeoutInMinutes": 0,
"condition": "succeededOrFailed()",
"refName": "CopyFiles1",
"task": {
"id": "5bfb729a-a7c8-4a78-a7c3-8d717bb7c13c",
"versionSpec": "2.*",
"definitionType": "task"
},
"inputs": {
"SourceFolder": "$(Build.SourcesDirectory)\\corefx",
"Contents": "*.log",
"TargetFolder": "$(Build.StagingDirectory)\\BuildLogs",
"CleanTargetFolder": "false",
"OverWrite": "false",
"flattenFolders": "false"
}
},
{
"environment": {},
"enabled": true,
"continueOnError": true,
"alwaysRun": true,
"displayName": "Publish Artifact: BuildLogs",
"timeoutInMinutes": 0,
"condition": "succeededOrFailed()",
"refName": "PublishBuildArtifacts2",
"task": {
"id": "2ff763a7-ce83-4e1f-bc89-0ae63477cebe",
"versionSpec": "1.*",
"definitionType": "task"
},
"inputs": {
"PathtoPublish": "$(Build.StagingDirectory)\\BuildLogs",
"ArtifactName": "BuildLogs",
"ArtifactType": "Container",
"TargetPath": "\\\\my\\share\\$(Build.DefinitionName)\\$(Build.BuildNumber)",
"Parallel": "false",
"ParallelCount": "8"
}
},
{
"environment": {},
"enabled": true,
@ -259,6 +261,7 @@
"alwaysRun": false,
"displayName": "Execute cleanup tasks",
"timeoutInMinutes": 0,
"condition": "always()",
"refName": "Task12",
"task": {
"id": "521a94ea-9e68-468a-8167-6dcf361ea776",
@ -274,6 +277,7 @@
"alwaysRun": false,
"displayName": "Final clean to remove any lingering process",
"timeoutInMinutes": 0,
"condition": "always()",
"refName": "Task13",
"task": {
"id": "d9bafed4-0b18-4f58-968d-86655b4d2ce9",
@ -294,6 +298,7 @@
"alwaysRun": false,
"displayName": "Build solution corefx\\Tools\\scripts\\vstsagent\\cleanupagent.proj",
"timeoutInMinutes": 0,
"condition": "always()",
"refName": "Task14",
"task": {
"id": "c6c4c611-aa2e-4a33-b606-5eaba2196824",
@ -422,6 +427,15 @@
"PB_SignType": {
"value": "real",
"allowOverride": true
},
"PB_PackageVersionPropsUrl": {
"value": ""
},
"PACKAGEVERSIONPROPSURL": {
"value": "$(PB_PackageVersionPropsUrl)"
},
"PB_AssetRootUrl": {
"value": ""
}
},
"demands": [
@ -468,6 +482,7 @@
},
"processParameters": {},
"quality": "definition",
"drafts": [],
"queue": {
"id": 36,
"name": "DotNet-Build",
@ -487,7 +502,7 @@
"description": "Visual Studio and DevDiv team project for git source code repositories. Work items will be added for Adams, Dev14 work items are tracked in vstfdevdiv. ",
"url": "https://devdiv.visualstudio.com/DefaultCollection/_apis/projects/0bdbc590-a062-4c3f-b0f6-9383f67865ee",
"state": "wellFormed",
"revision": 418098167,
"revision": 418098432,
"visibility": "organization"
}
}
}

View File

@ -18,7 +18,7 @@
"scriptName": "",
"arguments": "-path $(build.SourcesDirectory)\\corefx",
"workingFolder": "",
"inlineScript": "param($path)\n\nif (Test-Path $path){\n Stop-Process -processname msbuild -ErrorAction Ignore -Verbose\n Stop-Process -processname dotnet -ErrorAction Ignore -Verbose\n Stop-Process -processname vbcscompiler -ErrorAction Ignore -Verbose\n # this will print out an error each time a file can't be deleted.\n Remove-Item -Recurse -Force $path\n }",
"inlineScript": "param($path)\nif ($path -and (Test-Path $path)){\nStop-Process -processname msbuild -ErrorAction Ignore -Verbose\nStop-Process -processname dotnet -ErrorAction Ignore -Verbose\nStop-Process -processname vbcscompiler -ErrorAction Ignore -Verbose\n$emptyFolder = (New-Item -ItemType Directory (Join-Path -Path $env:TEMP -ChildPath ([System.IO.Path]::GetRandomFileName()))).FullName\nrobocopy $emptyFolder $path /purge\nRemove-Item -Recurse -Force $path,$emptyFolder \nexit 0\n}",
"failOnStandardError": "true"
}
},
@ -69,7 +69,7 @@
"alwaysRun": false,
"displayName": "Install Signing Plugin",
"timeoutInMinutes": 0,
"condition": "ne(variables['PB_SignType'], 'oss')",
"condition": "and(succeeded(), in(variables.PB_SignType, 'real', 'test'))",
"refName": "Task4",
"task": {
"id": "30666190-6959-11e5-9f96-f56098202fef",
@ -170,6 +170,7 @@
"alwaysRun": false,
"displayName": "Run $(Build.SourcesDirectory)\\corefx\\build-tests.cmd",
"timeoutInMinutes": 0,
"condition": "and(succeeded(), ne(variables.PB_SkipTests, 'true'))",
"refName": "Task9",
"task": {
"id": "d9bafed4-0b18-4f58-968d-86655b4d2ce9",
@ -190,6 +191,7 @@
"alwaysRun": false,
"displayName": "Create Helix Test Jobs",
"timeoutInMinutes": 0,
"condition": "and(succeeded(), ne(variables.PB_SkipTests, 'true'), ne(variables.PB_EnableCloudTest, 'false'))",
"refName": "Task10",
"task": {
"id": "c6c4c611-aa2e-4a33-b606-5eaba2196824",
@ -232,50 +234,6 @@
"failOnStandardError": "false"
}
},
{
"environment": {},
"enabled": true,
"continueOnError": true,
"alwaysRun": true,
"displayName": "Copy Files to: $(Build.StagingDirectory)\\BuildLogs",
"timeoutInMinutes": 0,
"refName": "CopyFiles1",
"task": {
"id": "5bfb729a-a7c8-4a78-a7c3-8d717bb7c13c",
"versionSpec": "2.*",
"definitionType": "task"
},
"inputs": {
"SourceFolder": "$(Build.SourcesDirectory)\\corefx",
"Contents": "*.log",
"TargetFolder": "$(Build.StagingDirectory)\\BuildLogs",
"CleanTargetFolder": "false",
"OverWrite": "false",
"flattenFolders": "false"
}
},
{
"environment": {},
"enabled": true,
"continueOnError": true,
"alwaysRun": true,
"displayName": "Publish Artifact: BuildLogs",
"timeoutInMinutes": 0,
"refName": "PublishBuildArtifacts2",
"task": {
"id": "2ff763a7-ce83-4e1f-bc89-0ae63477cebe",
"versionSpec": "1.*",
"definitionType": "task"
},
"inputs": {
"PathtoPublish": "$(Build.StagingDirectory)\\BuildLogs",
"ArtifactName": "BuildLogs",
"ArtifactType": "Container",
"TargetPath": "\\\\my\\share\\$(Build.DefinitionName)\\$(Build.BuildNumber)",
"Parallel": "false",
"ParallelCount": "8"
}
},
{
"environment": {},
"enabled": true,
@ -301,6 +259,52 @@
"SymbolsArtifactName": "Symbols_$(PB_ConfigurationGroup)"
}
},
{
"environment": {},
"enabled": true,
"continueOnError": true,
"alwaysRun": true,
"displayName": "Copy Files to: $(Build.StagingDirectory)\\BuildLogs",
"timeoutInMinutes": 0,
"condition": "succeededOrFailed()",
"refName": "CopyFiles1",
"task": {
"id": "5bfb729a-a7c8-4a78-a7c3-8d717bb7c13c",
"versionSpec": "2.*",
"definitionType": "task"
},
"inputs": {
"SourceFolder": "$(Build.SourcesDirectory)\\corefx",
"Contents": "*.log",
"TargetFolder": "$(Build.StagingDirectory)\\BuildLogs",
"CleanTargetFolder": "false",
"OverWrite": "false",
"flattenFolders": "false"
}
},
{
"environment": {},
"enabled": true,
"continueOnError": true,
"alwaysRun": true,
"displayName": "Publish Artifact: BuildLogs",
"timeoutInMinutes": 0,
"condition": "succeededOrFailed()",
"refName": "PublishBuildArtifacts2",
"task": {
"id": "2ff763a7-ce83-4e1f-bc89-0ae63477cebe",
"versionSpec": "1.*",
"definitionType": "task"
},
"inputs": {
"PathtoPublish": "$(Build.StagingDirectory)\\BuildLogs",
"ArtifactName": "BuildLogs",
"ArtifactType": "Container",
"TargetPath": "\\\\my\\share\\$(Build.DefinitionName)\\$(Build.BuildNumber)",
"Parallel": "false",
"ParallelCount": "8"
}
},
{
"environment": {},
"enabled": true,
@ -308,6 +312,7 @@
"alwaysRun": false,
"displayName": "Execute cleanup tasks",
"timeoutInMinutes": 0,
"condition": "always()",
"refName": "Task14",
"task": {
"id": "521a94ea-9e68-468a-8167-6dcf361ea776",
@ -323,6 +328,7 @@
"alwaysRun": false,
"displayName": "Final clean to remove any lingering process",
"timeoutInMinutes": 0,
"condition": "always()",
"refName": "Task15",
"task": {
"id": "d9bafed4-0b18-4f58-968d-86655b4d2ce9",
@ -343,6 +349,7 @@
"alwaysRun": false,
"displayName": "Build solution corefx\\Tools\\scripts\\vstsagent\\cleanupagent.proj",
"timeoutInMinutes": 0,
"condition": "always()",
"refName": "Task16",
"task": {
"id": "c6c4c611-aa2e-4a33-b606-5eaba2196824",
@ -503,6 +510,19 @@
"PB_SignType": {
"value": "real",
"allowOverride": true
},
"PB_SkipTests": {
"value": "false",
"allowOverride": true
},
"PB_PackageVersionPropsUrl": {
"value": ""
},
"PACKAGEVERSIONPROPSURL": {
"value": "$(PB_PackageVersionPropsUrl)"
},
"PB_AssetRootUrl": {
"value": ""
}
},
"demands": [
@ -548,6 +568,7 @@
},
"processParameters": {},
"quality": "definition",
"drafts": [],
"queue": {
"id": 36,
"name": "DotNet-Build",
@ -567,7 +588,7 @@
"description": "Visual Studio and DevDiv team project for git source code repositories. Work items will be added for Adams, Dev14 work items are tracked in vstfdevdiv. ",
"url": "https://devdiv.visualstudio.com/DefaultCollection/_apis/projects/0bdbc590-a062-4c3f-b0f6-9383f67865ee",
"state": "wellFormed",
"revision": 418098167,
"revision": 418098432,
"visibility": "organization"
}
}
}

View File

@ -1,12 +1,14 @@
{
"build": [
{
"environment": {},
"enabled": true,
"continueOnError": false,
"alwaysRun": false,
"displayName": "Install Signing Plugin",
"timeoutInMinutes": 0,
"condition": "and(succeeded(), ne(variables['PB_SignType'], 'oss'))",
"condition": "and(succeeded(), in(variables.PB_SignType, 'real', 'test'))",
"refName": "Task1",
"task": {
"id": "30666190-6959-11e5-9f96-f56098202fef",
"versionSpec": "1.*",
@ -20,11 +22,13 @@
}
},
{
"environment": {},
"enabled": true,
"continueOnError": false,
"alwaysRun": false,
"displayName": "Run script $(VS140COMNTOOLS)\\VsDevCmd.bat",
"timeoutInMinutes": 0,
"refName": "Task2",
"task": {
"id": "bfc8bf76-e7ac-4a8c-9a55-a944a9f632fd",
"versionSpec": "1.*",
@ -39,11 +43,13 @@
}
},
{
"environment": {},
"enabled": true,
"continueOnError": false,
"alwaysRun": false,
"displayName": "Fetch custom tooling (NuGet, EmbedIndex)",
"timeoutInMinutes": 0,
"refName": "Task3",
"task": {
"id": "e213ff0f-5d5c-4791-802d-52ea3e7be1f1",
"versionSpec": "1.*",
@ -53,17 +59,19 @@
"scriptType": "filePath",
"scriptName": "scripts/DotNet-Trusted-Publish/Fetch-Tools.ps1",
"arguments": "$(Build.StagingDirectory)\\ToolingDownload",
"inlineScript": "# You can write your powershell scripts inline here. \n# You can also pass predefined and custom variables to this scripts using arguments\n\n Write-Host \"Hello World\"",
"workingFolder": "",
"inlineScript": "# You can write your powershell scripts inline here. \n# You can also pass predefined and custom variables to this scripts using arguments\n\n Write-Host \"Hello World\"",
"failOnStandardError": "true"
}
},
{
"environment": {},
"enabled": true,
"continueOnError": false,
"alwaysRun": false,
"displayName": "Set up pipeline-specific git repository",
"timeoutInMinutes": 0,
"refName": "Task4",
"task": {
"id": "e213ff0f-5d5c-4791-802d-52ea3e7be1f1",
"versionSpec": "1.*",
@ -73,17 +81,19 @@
"scriptType": "inlineScript",
"scriptName": "",
"arguments": "-gitUrl $(PB_VstsRepoGitUrl) -root $(Pipeline.SourcesDirectory)",
"inlineScript": "param($gitUrl, $root)\n\nif (Test-Path $root)\n{\n Remove-Item -Recurse -Force $root\n}\ngit clone --no-checkout $gitUrl $root 2>&1 | Write-Host\ncd $root\ngit checkout $env:SourceVersion 2>&1 | Write-Host\n\nWrite-Host (\"##vso[task.setvariable variable=Pipeline.SourcesDirectory;]$root\")",
"workingFolder": "",
"inlineScript": "param($gitUrl, $root)\n\nif (Test-Path $root)\n{\n Remove-Item -Recurse -Force $root\n}\ngit clone --no-checkout $gitUrl $root 2>&1 | Write-Host\ncd $root\ngit checkout $env:SourceVersion 2>&1 | Write-Host\n\nWrite-Host (\"##vso[task.setvariable variable=Pipeline.SourcesDirectory;]$root\")",
"failOnStandardError": "true"
}
},
{
"environment": {},
"enabled": true,
"continueOnError": false,
"alwaysRun": false,
"displayName": "sync -ab",
"timeoutInMinutes": 0,
"refName": "Task5",
"task": {
"id": "e213ff0f-5d5c-4791-802d-52ea3e7be1f1",
"versionSpec": "1.*",
@ -93,18 +103,20 @@
"scriptType": "inlineScript",
"scriptName": "",
"arguments": "$(PB_CloudDropAccountName) $(CloudDropAccessToken) $(PB_Label)",
"inlineScript": "param($account, $token, $container)\n.\\sync.cmd -ab -- /p:CloudDropAccountName=$account /p:CloudDropAccessToken=$token /p:ContainerName=$container",
"workingFolder": "$(Pipeline.SourcesDirectory)",
"inlineScript": "param($account, $token, $container)\n.\\sync.cmd -ab -- /p:CloudDropAccountName=$account /p:CloudDropAccessToken=$token /p:ContainerName=$container",
"failOnStandardError": "false"
}
},
{
"environment": {},
"enabled": true,
"continueOnError": false,
"alwaysRun": false,
"displayName": "Inject signed symbol catalogs",
"timeoutInMinutes": 0,
"condition": "succeeded()",
"refName": "Task6",
"task": {
"id": "e213ff0f-5d5c-4791-802d-52ea3e7be1f1",
"versionSpec": "1.*",
@ -120,11 +132,13 @@
}
},
{
"environment": {},
"enabled": true,
"continueOnError": false,
"alwaysRun": false,
"displayName": "Index symbol packages",
"timeoutInMinutes": 0,
"refName": "Task7",
"task": {
"id": "e213ff0f-5d5c-4791-802d-52ea3e7be1f1",
"versionSpec": "1.*",
@ -134,17 +148,19 @@
"scriptType": "inlineScript",
"scriptName": "",
"arguments": "-ConfigGroup $(PB_ConfigurationGroup) -SymPkgGlob $(PB_AzureContainerSymbolPackageGlob) -PipelineSrcDir $(Pipeline.SourcesDirectory)",
"inlineScript": "param($ConfigGroup, $SymPkgGlob, $PipelineSrcDir)\nif ($ConfigGroup -ne \"Release\") { exit }\n\n& $env:Build_SourcesDirectory\\scripts\\DotNet-Trusted-Publish\\Embed-Index.ps1 `\n $PipelineSrcDir\\packages\\AzureTransfer\\$ConfigGroup\\$SymPkgGlob `\n $env:Build_StagingDirectory\\IndexedSymbolPackages",
"workingFolder": "",
"inlineScript": "param($ConfigGroup, $SymPkgGlob, $PipelineSrcDir)\nif ($ConfigGroup -ne \"Release\") { exit }\n\n& $env:Build_SourcesDirectory\\scripts\\DotNet-Trusted-Publish\\Embed-Index.ps1 `\n $PipelineSrcDir\\packages\\AzureTransfer\\$ConfigGroup\\$SymPkgGlob `\n $env:Build_StagingDirectory\\IndexedSymbolPackages",
"failOnStandardError": "true"
}
},
{
"environment": {},
"enabled": true,
"continueOnError": false,
"alwaysRun": false,
"displayName": "Generate Version Assets",
"timeoutInMinutes": 0,
"refName": "Task8",
"task": {
"id": "e213ff0f-5d5c-4791-802d-52ea3e7be1f1",
"versionSpec": "1.*",
@ -154,17 +170,20 @@
"scriptType": "inlineScript",
"scriptName": "",
"arguments": "-OfficialBuildId $(OfficialBuildId)",
"inlineScript": "param($OfficialBuildId)\n msbuild build.proj /t:CreateOrUpdateCurrentVersionFile /p:OfficialBuildId=$OfficialBuildId /p:BuildVersionFile=bin\\obj\\BuildVersion-$OfficialBuildId.props",
"workingFolder": "$(Pipeline.SourcesDirectory)",
"inlineScript": "param($OfficialBuildId)\n msbuild build.proj /t:CreateOrUpdateCurrentVersionFile /p:OfficialBuildId=$OfficialBuildId /p:BuildVersionFile=bin\\obj\\BuildVersion-$OfficialBuildId.props",
"failOnStandardError": "true"
}
},
{
"environment": {},
"enabled": true,
"continueOnError": false,
"alwaysRun": false,
"displayName": "packages -> dotnet.myget.org",
"timeoutInMinutes": 0,
"condition": "and(succeeded(), contains(variables.PB_PublishType, 'myget'), eq(variables.PB_ConfigurationGroup, 'Release'))",
"refName": "Task9",
"task": {
"id": "e213ff0f-5d5c-4791-802d-52ea3e7be1f1",
"versionSpec": "1.*",
@ -173,18 +192,42 @@
"inputs": {
"scriptType": "inlineScript",
"scriptName": "",
"arguments": "-ApiKey $(MyGetApiKey) -ConfigurationGroup $(PB_ConfigurationGroup) -PackagesGlob $(Pipeline.SourcesDirectory)\\packages\\AzureTransfer\\$(PB_ConfigurationGroup)\\$(PB_AzureContainerPackageGlob) -MyGetFeedUrl $(PB_MyGetFeedUrl)",
"arguments": "-ApiKey $(MyGetApiKey) -PackagesGlob $(Pipeline.SourcesDirectory)\\packages\\AzureTransfer\\$(PB_ConfigurationGroup)\\$(PB_AzureContainerPackageGlob) -MyGetFeedUrl $(PB_MyGetFeedUrl)",
"workingFolder": "$(Pipeline.SourcesDirectory)",
"inlineScript": "param($ApiKey, $ConfigurationGroup, $PackagesGlob, $MyGetFeedUrl, $SignType=\"unset\")\n\nif ($ConfigurationGroup.ToLower() -ne \"release\" ) { Write-host \"Chose not to publish\"; exit }\n\n.\\build-managed.cmd -- /t:NuGetPush /v:Normal `\n/p:NuGetExePath=$env:CustomNuGetPath `\n/p:NuGetApiKey=$ApiKey `\n/p:NuGetSource=$MyGetFeedUrl `\n/p:PackagesGlob=$PackagesGlob",
"inlineScript": "param($ApiKey, $PackagesGlob, $MyGetFeedUrl)\n.\\build-managed.cmd -- /t:NuGetPush /v:Normal `\n/p:NuGetExePath=$env:CustomNuGetPath `\n/p:NuGetApiKey=$ApiKey `\n/p:NuGetSource=$MyGetFeedUrl `\n/p:PackagesGlob=$PackagesGlob",
"failOnStandardError": "true"
}
},
{
"environment": {},
"enabled": true,
"continueOnError": false,
"alwaysRun": false,
"displayName": "packages -> Blob Feed",
"timeoutInMinutes": 0,
"condition": "and(succeeded(), contains(variables.PB_PublishType, 'blob'), eq(variables.PB_ConfigurationGroup, 'Release'))",
"refName": "CmdLine1",
"task": {
"id": "d9bafed4-0b18-4f58-968d-86655b4d2ce9",
"versionSpec": "1.*",
"definitionType": "task"
},
"inputs": {
"filename": "msbuild",
"arguments": "src\\publish.proj /t:PublishToAzureBlobFeed $(FeedPublishArguments)",
"workingFolder": "$(Pipeline.SourcesDirectory)",
"failOnStandardError": "false"
}
},
{
"environment": {},
"enabled": true,
"continueOnError": false,
"alwaysRun": false,
"displayName": "symbol packages -> dotnet.myget.org",
"timeoutInMinutes": 0,
"condition": "and(succeeded(), contains(variables.PB_PublishType, 'myget'), eq(variables.PB_ConfigurationGroup, 'Release'))",
"refName": "Task11",
"task": {
"id": "e213ff0f-5d5c-4791-802d-52ea3e7be1f1",
"versionSpec": "1.*",
@ -195,16 +238,40 @@
"scriptName": "",
"arguments": "-ApiKey $(MyGetApiKey) -ConfigurationGroup $(PB_ConfigurationGroup) -PackagesGlob $(Build.StagingDirectory)\\IndexedSymbolPackages\\*.nupkg -MyGetFeedUrl $(PB_MyGetFeedUrl)",
"workingFolder": "$(Pipeline.SourcesDirectory)",
"inlineScript": "param($ApiKey, $ConfigurationGroup, $PackagesGlob, $MyGetFeedUrl, $SignType=\"unset\")\n\nif ($ConfigurationGroup.ToLower() -ne \"release\" ) { Write-host \"Chose not to publish\"; exit }\nif ($env:SourceBranch.StartsWith(\"release/\")) { exit }\n\n.\\build-managed.cmd -- /t:NuGetPush /v:Normal `\n/p:NuGetExePath=$env:CustomNuGetPath `\n/p:NuGetApiKey=$ApiKey `\n/p:NuGetSource=$MyGetFeedUrl `\n/p:PackagesGlob=$PackagesGlob",
"inlineScript": "param($ApiKey, $ConfigurationGroup, $PackagesGlob, $MyGetFeedUrl)\nif ($env:SourceBranch.StartsWith(\"release/\")) { exit }\n\n.\\build-managed.cmd -- /t:NuGetPush /v:Normal `\n/p:NuGetExePath=$env:CustomNuGetPath `\n/p:NuGetApiKey=$ApiKey `\n/p:NuGetSource=$MyGetFeedUrl `\n/p:PackagesGlob=$PackagesGlob",
"failOnStandardError": "true"
}
},
{
"environment": {},
"enabled": true,
"continueOnError": false,
"alwaysRun": false,
"displayName": "symbol packages -> Blob Feed",
"timeoutInMinutes": 0,
"condition": "and(succeeded(), contains(variables.PB_PublishType, 'blob'), eq(variables.PB_ConfigurationGroup, 'Release'))",
"refName": "CmdLine2",
"task": {
"id": "d9bafed4-0b18-4f58-968d-86655b4d2ce9",
"versionSpec": "1.*",
"definitionType": "task"
},
"inputs": {
"filename": "msbuild",
"arguments": "src\\publish.proj /t:PublishSymbolsToAzureBlobFeed /p:PublishSymbols=\"true\" $(FeedPublishArguments)",
"workingFolder": "$(Pipeline.SourcesDirectory)",
"failOnStandardError": "false"
}
},
{
"environment": {},
"enabled": true,
"continueOnError": false,
"alwaysRun": false,
"displayName": "Update versions repository",
"timeoutInMinutes": 0,
"condition": "and(succeeded(), contains(variables.PB_PublishType, 'versions'), eq(variables.PB_ConfigurationGroup, 'Release'))",
"refName": "Task13",
"task": {
"id": "e213ff0f-5d5c-4791-802d-52ea3e7be1f1",
"versionSpec": "1.*",
@ -214,17 +281,19 @@
"scriptType": "inlineScript",
"scriptName": "",
"arguments": "-ghAuthToken $(PB_DotNetBuildBotAccessToken) -root $(Pipeline.SourcesDirectory) -cg $(PB_ConfigurationGroup) -fullPkgGlob $(Pipeline.SourcesDirectory)\\packages\\AzureTransfer\\$(PB_ConfigurationGroup)\\$(PB_AzureContainerPackageGlob) ",
"inlineScript": "param($ghAuthToken, $root, $cg, $fullPkgGlob, $SignType=\"unset\")\nif ($cg -ne \"Release\" ) { exit }\ncd $root\n. $root\\build-managed.cmd -- /t:UpdatePublishedVersions `\n/p:GitHubUser=dotnet-helix-bot `\n/p:GitHubEmail=dotnet-helix-bot@microsoft.com `\n/p:GitHubAuthToken=$ghAuthToken `\n/p:VersionsRepoOwner=$env:PB_VersionsRepoOwner `\n/p:VersionsRepo=versions `\n/p:VersionsRepoPath=build-info/dotnet/$env:PB_GitHubRepositoryName/$env:SourceBranch `\n/p:ShippedNuGetPackageGlobPath=$fullPkgGlob",
"workingFolder": "",
"inlineScript": "param($ghAuthToken, $root, $cg, $fullPkgGlob, $SignType=\"unset\")\nif ($cg -ne \"Release\" ) { exit }\ncd $root\n. $root\\build-managed.cmd -- /t:UpdatePublishedVersions `\n/p:GitHubUser=dotnet-helix-bot `\n/p:GitHubEmail=dotnet-helix-bot@microsoft.com `\n/p:GitHubAuthToken=$ghAuthToken `\n/p:VersionsRepoOwner=$env:PB_VersionsRepoOwner `\n/p:VersionsRepo=versions `\n/p:VersionsRepoPath=build-info/dotnet/$env:PB_GitHubRepositoryName/$env:SourceBranch `\n/p:ShippedNuGetPackageGlobPath=$fullPkgGlob",
"failOnStandardError": "true"
}
},
{
"environment": {},
"enabled": true,
"continueOnError": false,
"alwaysRun": false,
"displayName": "Get Build Number",
"timeoutInMinutes": 0,
"refName": "Task14",
"task": {
"id": "e213ff0f-5d5c-4791-802d-52ea3e7be1f1",
"versionSpec": "1.*",
@ -234,17 +303,19 @@
"scriptType": "inlineScript",
"scriptName": "",
"arguments": "$(OfficialBuildId) $(Pipeline.SourcesDirectory)",
"inlineScript": "param(\n [string]$OfficialBuildId,\n [string]$SourcesDir\n)\n$VersionPropsFile=$SourcesDir + \"\\bin\\obj\\BuildVersion-\" + $OfficialBuildId + \".props\"\n[xml]$versionXml=Get-Content $VersionPropsFile\n$env:BuildNumber=$versionXml.Project.PropertyGroup.BuildNumberMajor.InnerText + \".\" + $versionXml.Project.PropertyGroup.BuildNumberMinor.InnerText\nWrite-Host (\"##vso[task.setvariable variable=BuildNumber;]$env:BuildNumber\")",
"workingFolder": "",
"inlineScript": "param(\n [string]$OfficialBuildId,\n [string]$SourcesDir\n)\n$VersionPropsFile=$SourcesDir + \"\\bin\\obj\\BuildVersion-\" + $OfficialBuildId + \".props\"\n[xml]$versionXml=Get-Content $VersionPropsFile\n$env:BuildNumber=$versionXml.Project.PropertyGroup.BuildNumberMajor.InnerText + \".\" + $versionXml.Project.PropertyGroup.BuildNumberMinor.InnerText\nWrite-Host (\"##vso[task.setvariable variable=BuildNumber;]$env:BuildNumber\")",
"failOnStandardError": "true"
}
},
{
"environment": {},
"enabled": true,
"continueOnError": true,
"alwaysRun": false,
"displayName": "Publish to Artifact Services Drop",
"timeoutInMinutes": 0,
"refName": "Task15",
"task": {
"id": "f9d96d25-0c81-4e77-8282-1ad1f785cbb4",
"versionSpec": "0.*",
@ -263,12 +334,14 @@
}
},
{
"environment": {},
"enabled": true,
"continueOnError": false,
"alwaysRun": false,
"displayName": "Send Telemetry",
"timeoutInMinutes": 0,
"condition": "always()",
"refName": "Task16",
"task": {
"id": "521a94ea-9e68-468a-8167-6dcf361ea776",
"versionSpec": "1.*",
@ -278,18 +351,6 @@
}
],
"options": [
{
"enabled": false,
"definition": {
"id": "7c555368-ca64-4199-add6-9ebaf0b0137d"
},
"inputs": {
"multipliers": "[]",
"parallel": "false",
"continueOnError": "true",
"additionalFields": "{}"
}
},
{
"enabled": false,
"definition": {
@ -309,6 +370,16 @@
"inputs": {
"additionalFields": "{}"
}
},
{
"enabled": false,
"definition": {
"id": "5d58cc01-7c75-450c-be18-a388ddb129ec"
},
"inputs": {
"branchFilters": "[\"+refs/heads/*\"]",
"additionalFields": "{}"
}
}
],
"variables": {
@ -423,6 +494,9 @@
"value": "master",
"allowOverride": true
},
"FeedPublishArguments": {
"value": "$(PB_BuildOutputManifestArguments) /p:AccountKey=$(PB_PublishBlobFeedKey) /p:ExpectedFeedUrl=$(PB_PublishBlobFeedUrl) /p:ConfigurationGroup=$(PB_ConfigurationGroup)"
},
"PB_AzureContainerPackageGlob": {
"value": "*.nupkg",
"allowOverride": true
@ -441,6 +515,20 @@
},
"PB_ToolPackageSource": {
"value": "https://www.myget.org/F/dagood-test-buildtools/api/v3/index.json"
},
"PB_PublishBlobFeedUrl": {
"value": "",
"allowOverride": true
},
"PB_PublishBlobFeedKey": {
"value": null,
"isSecret": true
},
"PB_PublishType": {
"value": ""
},
"PB_BuildOutputManifestArguments": {
"value": "/p:ManifestBuildId=$(OfficialBuildId) /p:ManifestBranch=$(SourceBranch) /p:ManifestCommit=$(SourceVersion)"
}
},
"retentionRules": [
@ -462,6 +550,7 @@
"buildNumberFormat": "$(date:yyyyMMdd)$(rev:-rr)",
"jobAuthorizationScope": "projectCollection",
"jobTimeoutInMinutes": 180,
"jobCancelTimeoutInMinutes": 5,
"repository": {
"properties": {
"labelSources": "0",
@ -469,7 +558,9 @@
"fetchDepth": "0",
"gitLfsSupport": "false",
"skipSyncSource": "false",
"cleanOptions": "0"
"cleanOptions": "0",
"checkoutNestedSubmodules": "false",
"labelSourcesFormat": "$(build.buildNumber)"
},
"id": "0a2b2664-c1be-429c-9b40-8a24dee27a4a",
"type": "TfsGit",
@ -479,25 +570,29 @@
"clean": "true",
"checkoutSubmodules": false
},
"processParameters": {},
"quality": "definition",
"drafts": [],
"queue": {
"id": 36,
"name": "DotNet-Build",
"pool": {
"id": 39,
"name": "DotNet-Build"
},
"id": 36,
"name": "DotNet-Build"
}
},
"path": "\\",
"type": "build",
"id": 2943,
"name": "DotNet-Trusted-Publish",
"path": "\\",
"type": "build",
"queueStatus": "enabled",
"project": {
"id": "0bdbc590-a062-4c3f-b0f6-9383f67865ee",
"name": "DevDiv",
"description": "Visual Studio and DevDiv team project for git source code repositories. Work items will be added for Adams, Dev14 work items are tracked in vstfdevdiv. ",
"url": "https://devdiv.visualstudio.com/DefaultCollection/_apis/projects/0bdbc590-a062-4c3f-b0f6-9383f67865ee",
"state": "wellFormed",
"revision": 418097459
"revision": 418098311,
"visibility": "organization"
}
}

View File

@ -0,0 +1,39 @@
@Library('dotnet-ci') _
// Incoming parameters. Access with "params.<param name>".
// Note that the parameters will be set as env variables so we cannot use names that conflict
// with the engineering system parameter names.
// CGroup - Build configuration.
// TestOuter - If true, runs outerloop, if false runs just innerloop
simpleDockerNode('microsoft/dotnet-buildtools-prereqs:alpine-3.6-3148f11-20171119021156') {
stage ('Checkout source') {
checkoutRepo()
}
stage ('Initialize tools') {
// Init tools
sh './init-tools.sh'
}
stage ('Generate version assets') {
// Generate the version assets. Do we need to even do this for non-official builds?
sh "./build-managed.sh -runtimeos=alpine.3.6 -- /t:GenerateVersionSourceFile /p:GenerateVersionSourceFile=true /p:PortableBuild=false"
}
stage ('Sync') {
sh "./sync.sh -p -runtimeos=alpine.3.6 -- /p:ArchGroup=x64 /p:PortableBuild=false"
}
stage ('Build Product') {
sh "./build.sh -buildArch=x64 -runtimeos=alpine.3.6 -${params.CGroup} -- /p:PortableBuild=false"
}
stage ('Build Tests') {
def additionalArgs = ''
if (params.TestOuter) {
additionalArgs = '-Outerloop'
}
sh "./build-tests.sh -buildArch=x64 -${params.CGroup} -SkipTests ${additionalArgs} -- /p:ArchiveTests=true /p:EnableDumpling=true /p:PortableBuild=false"
}
// TODO: Add submission for Helix testing once we have queue for Alpine Linux working
}
// TODO: Add "Execute tests" stage once we have queue for Alpine Linux working

View File

@ -52,13 +52,12 @@ simpleDockerNode('microsoft/dotnet-buildtools-prereqs:rhel7_prereqs_2') {
'Debian.87.Amd64.Open',
'Ubuntu.1404.Amd64.Open',
'Ubuntu.1604.Amd64.Open',
'suse.422.amd64.Open',
'opensuse.422.amd64.open',
'fedora.25.amd64.Open',]
if (params.TestOuter) {
targetHelixQueues += ['Debian.90.Amd64.Open',
'Fedora.26.Amd64.Open',
'SLES.12.Amd64.Open',
'Ubuntu.1704.Amd64.Open',]
'SLES.12.Amd64.Open',]
}
sh "./Tools/msbuild.sh src/upload-tests.proj /p:ArchGroup=x64 /p:ConfigurationGroup=${params.CGroup} /p:TestProduct=corefx /p:TimeoutInSeconds=1200 /p:TargetOS=Linux /p:HelixJobType=test/functional/cli/ /p:HelixSource=${helixSource} /p:BuildMoniker=${helixBuild} /p:HelixCreator=${helixCreator} /p:CloudDropAccountName=dotnetbuilddrops /p:CloudResultsAccountName=dotnetjobresults /p:CloudDropAccessToken=\$CloudDropAccessToken /p:CloudResultsAccessToken=\$OutputCloudResultsAccessToken /p:HelixApiEndpoint=https://helix.dot.net/api/2017-04-14/jobs /p:TargetQueues=${targetHelixQueues.join('+')} /p:HelixLogFolder=${WORKSPACE}/${logFolder}/ /p:HelixCorrelationInfoFileName=SubmittedHelixRuns.txt"

View File

@ -7,45 +7,58 @@
},
"Pipelines": [
{
"Name": "Trusted-All-Release-Linux",
"Name": "Trusted-All-Linux",
"Parameters": {
"TreatWarningsAsErrors": "false"
},
"BuildParameters": {
"PB_ConfigurationGroup": "Release"
},
"Definitions": [{
"Name": "DotNet-CoreFx-Trusted-Linux",
"Parameters": {
"PB_DockerTag": "centos-7-d485f41-20173404063424",
"PB_BuildArguments": "-buildArch=x64 -Release -stripSymbols",
"PB_BuildTestsArguments": "-buildArch=x64 -Release -SkipTests -Outerloop -- /p:ArchiveTests=true /p:EnableDumpling=true",
"PB_SyncArguments": "-p -- /p:ArchGroup=x64",
"PB_BuildArguments": "-buildArch=x64 -$(PB_ConfigurationGroup) -stripSymbols",
"PB_BuildTestsArguments": "-buildArch=x64 -$(PB_ConfigurationGroup) -SkipTests -Outerloop -- /p:ArchiveTests=true /p:EnableDumpling=true",
"PB_SyncArguments": "-p -- /p:ArchGroup=x64 /p:DotNetRestoreSources=$(PB_RestoreSource) /p:DotNetAssetRootUrl=$(PB_AssetRootUrl)",
"PB_TargetQueue": "Centos.73.Amd64+RedHat.72.Amd64+RedHat.73.Amd64+Debian.87.Amd64+Debian.90.Amd64+Ubuntu.1404.Amd64+Ubuntu.1604.Amd64+Ubuntu.1704.Amd64+Ubuntu.1710.Amd64+suse.422.amd64+SLES.12.Amd64+fedora.25.amd64+Fedora.26.Amd64",
"PB_CreateHelixArguments": "/p:ArchGroup=x64 /p:ConfigurationGroup=Release /p:TestProduct=corefx /p:TimeoutInSeconds=1200 /p:TargetOS=Linux"
"PB_CreateHelixArguments": "/p:ArchGroup=x64 /p:ConfigurationGroup=$(PB_ConfigurationGroup) /p:TestProduct=corefx /p:TimeoutInSeconds=1200 /p:TargetOS=Linux"
},
"ReportingParameters": {
"OperatingSystem": "Linux",
"Platform": "x64",
"Type": "build/product/",
"ConfigurationGroup": "Release"
"Type": "build/product/"
}
},
{
"Name": "DotNet-CoreFx-Trusted-Linux",
"Parameters": {
"PB_DockerTag": "centos-6-376e1a3-20174311014331",
"PB_BuildArguments": "-buildArch=x64 -Release -stripSymbols -RuntimeOS=rhel.6 -- /p:PortableBuild=false",
"PB_BuildTestsArguments": "-buildArch=x64 -Release -SkipTests -Outerloop -RuntimeOS=rhel.6 -- /p:ArchiveTests=true /p:EnableDumpling=true /p:PortableBuild=false",
"PB_SyncArguments": "-p -RuntimeOS=rhel.6 -- /p:ArchGroup=x64 /p:PortableBuild=false",
"PB_BuildArguments": "-buildArch=x64 -$(PB_ConfigurationGroup) -stripSymbols -RuntimeOS=rhel.6 -- /p:PortableBuild=false",
"PB_BuildTestsArguments": "-buildArch=x64 -$(PB_ConfigurationGroup) -SkipTests -Outerloop -RuntimeOS=rhel.6 -- /p:ArchiveTests=true /p:EnableDumpling=true /p:PortableBuild=false",
"PB_SyncArguments": "-p -RuntimeOS=rhel.6 -- /p:ArchGroup=x64 /p:PortableBuild=false /p:DotNetRestoreSources=$(PB_RestoreSource) /p:DotNetAssetRootUrl=$(PB_AssetRootUrl)",
"PB_TargetQueue": "RedHat.69.Amd64",
"PB_CreateHelixArguments": "/p:ArchGroup=x64 /p:ConfigurationGroup=Release /p:TestProduct=corefx /p:TimeoutInSeconds=1200 /p:TargetOS=Linux"
"PB_CreateHelixArguments": "/p:ArchGroup=x64 /p:ConfigurationGroup=$(PB_ConfigurationGroup) /p:TestProduct=corefx /p:TimeoutInSeconds=1200 /p:TargetOS=Linux"
},
"ReportingParameters": {
"OperatingSystem": "RedHat6",
"Platform": "x64",
"Type": "build/product/",
"ConfigurationGroup": "Release"
"Type": "build/product/"
}
},
{
"Name": "DotNet-CoreFx-Trusted-Linux",
"Parameters": {
"PB_DockerTag": "alpine-3.6-3148f11-20171119021156",
"PB_BuildArguments": "-buildArch=x64 -$(PB_ConfigurationGroup) -BuildTests=false -stripSymbols -RuntimeOS=alpine.3.6 -- /p:PortableBuild=false",
"PB_SkipTestBuild" : "true",
"PB_BuildTestsArguments": "-buildArch=x64 -$(PB_ConfigurationGroup) -SkipTests -Outerloop -RuntimeOS=alpine.3.6 -- /p:ArchiveTests=false /p:EnableDumpling=true /p:PortableBuild=false",
"PB_SyncArguments": "-p -BuildTests=false -RuntimeOS=alpine.3.6 -- /p:ArchGroup=x64 /p:PortableBuild=false /p:DotNetRestoreSources=$(PB_RestoreSource) /p:DotNetAssetRootUrl=$(PB_AssetRootUrl)",
"PB_TargetQueue": "Alpine.36.Amd64",
"PB_EnableCloudTest" : "false",
"PB_CreateHelixArguments": "/p:EnableCloudTest=$(PB_EnableCloudTest) /p:ArchGroup=x64 /p:ConfigurationGroup=$(PB_ConfigurationGroup) /p:TestProduct=corefx /p:TimeoutInSeconds=1200 /p:TargetOS=Linux"
},
"ReportingParameters": {
"OperatingSystem": "Alpine3.6",
"Platform": "x64",
"Type": "build/product/"
}
},
{
@ -53,53 +66,50 @@
"Parameters": {
"PB_DockerTag": "ubuntu-14.04-cross-0cd4667-20170319080304",
"PB_Architecture": "arm",
"PB_BuildArguments": "-buildArch=arm -Release -stripSymbols",
"PB_SyncArguments": "-p -- /p:ArchGroup=arm"
"PB_BuildArguments": "-buildArch=arm -$(PB_ConfigurationGroup) -stripSymbols",
"PB_SyncArguments": "-p -- /p:ArchGroup=arm /p:DotNetRestoreSources=$(PB_RestoreSource) /p:DotNetAssetRootUrl=$(PB_AssetRootUrl)"
},
"ReportingParameters": {
"OperatingSystem": "Linux",
"Platform": "arm",
"Type": "build/product/",
"ConfigurationGroup": "Release"
"Type": "build/product/"
}
}
]
},
{
"Name": "Trusted-All-Release-OSX",
"Name": "Trusted-All-OSX",
"Parameters": {
"TreatWarningsAsErrors": "false"
},
"BuildParameters": {
"PB_BuildArguments": "-buildArch=x64 -Release -stripSymbols",
"PB_BuildTestsArguments": "-buildArch=x64 -Release -SkipTests -Outerloop -- /p:ArchiveTests=true",
"PB_SyncArguments": "-p -- /p:ArchGroup=x64",
"PB_CreateHelixArguments": "/p:ArchGroup=x64 /p:ConfigurationGroup=Release /p:EnableCloudTest=false /p:TestProduct=corefx /p:TimeoutInSeconds=1200 /p:TargetOS=OSX"
"PB_BuildArguments": "-buildArch=x64 -$(PB_ConfigurationGroup) -stripSymbols",
"PB_BuildTestsArguments": "-buildArch=x64 -$(PB_ConfigurationGroup) -SkipTests -Outerloop -- /p:ArchiveTests=true",
"PB_SyncArguments": "-p -- /p:ArchGroup=x64 /p:DotNetRestoreSources=$(PB_RestoreSource) /p:DotNetAssetRootUrl=$(PB_AssetRootUrl)",
"PB_CreateHelixArguments": "/p:ArchGroup=x64 /p:ConfigurationGroup=$(PB_ConfigurationGroup) /p:EnableCloudTest=false /p:TestProduct=corefx /p:TimeoutInSeconds=1200 /p:TargetOS=OSX"
},
"Definitions": [{
"Name": "DotNet-CoreFx-Trusted-OSX",
"Parameters": {
"PB_BuildArguments": "-buildArch=x64 -Release",
"PB_SyncArguments": "-p -- /p:ArchGroup=x64",
"PB_BuildArguments": "-buildArch=x64 -$(PB_ConfigurationGroup)",
"PB_SyncArguments": "-p -- /p:ArchGroup=x64 /p:DotNetRestoreSources=$(PB_RestoreSource) /p:DotNetAssetRootUrl=$(PB_AssetRootUrl)",
"PB_TargetQueue": "OSX.1012.Amd64+OSX.1013.Amd64",
"PB_CreateHelixArguments": "/p:ArchGroup=x64 /p:ConfigurationGroup=Release /p:TestProduct=corefx /p:TimeoutInSeconds=1200 /p:TargetOS=OSX"
"PB_CreateHelixArguments": "/p:ArchGroup=x64 /p:ConfigurationGroup=$(PB_ConfigurationGroup) /p:TestProduct=corefx /p:TimeoutInSeconds=1200 /p:TargetOS=OSX"
},
"ReportingParameters": {
"OperatingSystem": "OSX",
"Platform": "x64",
"Type": "build/product/",
"ConfigurationGroup": "Release"
"Type": "build/product/"
}
}
]
},
{
"Name": "Trusted-All-Release-Windows",
"Name": "Trusted-All-Windows",
"Parameters": {
"TreatWarningsAsErrors": "false"
},
"BuildParameters": {
"PB_ConfigurationGroup": "Release",
"PB_PipelineBuildMSBuildArguments": "/p:EnableProfileGuidedOptimization=true"
},
"Definitions": [
@ -107,16 +117,15 @@
"Name": "DotNet-CoreFx-Trusted-Windows",
"Parameters": {
"PB_Platform": "arm",
"PB_BuildArguments": "-buildArch=arm -Release -- /p:SignType=$(PB_SignType) /p:RuntimeOS=win10",
"PB_BuildTestsArguments": "-buildArch=arm -Release -SkipTests -Outerloop -- /p:RuntimeOS=win10 /p:ArchiveTests=true",
"PB_SyncArguments": "-p -- /p:ArchGroup=arm /p:RuntimeOS=win10",
"PB_CreateHelixArguments": "/p:ArchGroup=arm /p:ConfigurationGroup=Release /p:EnableCloudTest=false /p:TestProduct=corefx /p:TimeoutInSeconds=1200 /p:TargetOS=Windows_NT"
"PB_BuildArguments": "-buildArch=arm -$(PB_ConfigurationGroup) -- /p:SignType=$(PB_SignType) /p:RuntimeOS=win10",
"PB_BuildTestsArguments": "-buildArch=arm -$(PB_ConfigurationGroup) -SkipTests -Outerloop -- /p:RuntimeOS=win10 /p:ArchiveTests=true",
"PB_SyncArguments": "-p -- /p:ArchGroup=arm /p:RuntimeOS=win10 /p:DotNetRestoreSources=$(PB_RestoreSource) /p:DotNetAssetRootUrl=$(PB_AssetRootUrl)",
"PB_CreateHelixArguments": "/p:ArchGroup=arm /p:ConfigurationGroup=$(PB_ConfigurationGroup) /p:EnableCloudTest=false /p:TestProduct=corefx /p:TimeoutInSeconds=1200 /p:TargetOS=Windows_NT"
},
"ReportingParameters": {
"OperatingSystem": "Windows",
"Type": "build/product/",
"Platform": "arm",
"ConfigurationGroup": "Release",
"SubType": "netcoreapp"
}
},
@ -124,16 +133,15 @@
"Name": "DotNet-CoreFx-Trusted-Windows",
"Parameters": {
"PB_Platform": "arm64",
"PB_BuildArguments": "-buildArch=arm64 -Release -- /p:SignType=$(PB_SignType) /p:RuntimeOS=win10",
"PB_BuildTestsArguments": "-buildArch=arm64 -Release -SkipTests -Outerloop -- /p:RuntimeOS=win10 /p:ArchiveTests=true",
"PB_SyncArguments": "-p -- /p:ArchGroup=arm64 /p:RuntimeOS=win10",
"PB_CreateHelixArguments": "/p:ArchGroup=arm64 /p:ConfigurationGroup=Release /p:EnableCloudTest=false /p:TestProduct=corefx /p:TimeoutInSeconds=1200 /p:TargetOS=Windows_NT"
"PB_BuildArguments": "-buildArch=arm64 -$(PB_ConfigurationGroup) -- /p:SignType=$(PB_SignType) /p:RuntimeOS=win10",
"PB_BuildTestsArguments": "-buildArch=arm64 -$(PB_ConfigurationGroup) -SkipTests -Outerloop -- /p:RuntimeOS=win10 /p:ArchiveTests=true",
"PB_SyncArguments": "-p -- /p:ArchGroup=arm64 /p:RuntimeOS=win10 /p:DotNetRestoreSources=$(PB_RestoreSource) /p:DotNetAssetRootUrl=$(PB_AssetRootUrl)",
"PB_CreateHelixArguments": "/p:ArchGroup=arm64 /p:ConfigurationGroup=$(PB_ConfigurationGroup) /p:EnableCloudTest=false /p:TestProduct=corefx /p:TimeoutInSeconds=1200 /p:TargetOS=Windows_NT"
},
"ReportingParameters": {
"OperatingSystem": "Windows",
"Type": "build/product/",
"Platform": "arm64",
"ConfigurationGroup": "Release",
"SubType": "netcoreapp"
}
},
@ -141,17 +149,16 @@
"Name": "DotNet-CoreFx-Trusted-Windows",
"Parameters": {
"PB_Platform": "x64",
"PB_BuildArguments": "-buildArch=x64 -Release -- /p:SignType=$(PB_SignType) /p:RuntimeOS=win10",
"PB_BuildTestsArguments": "-buildArch=x64 -Release -SkipTests -Outerloop -- /p:RuntimeOS=win10 /p:ArchiveTests=true",
"PB_SyncArguments": "-p -- /p:ArchGroup=x64 /p:RuntimeOS=win10",
"PB_BuildArguments": "-buildArch=x64 -$(PB_ConfigurationGroup) -- /p:SignType=$(PB_SignType) /p:RuntimeOS=win10",
"PB_BuildTestsArguments": "-buildArch=x64 -$(PB_ConfigurationGroup) -SkipTests -Outerloop -- /p:RuntimeOS=win10 /p:ArchiveTests=true",
"PB_SyncArguments": "-p -- /p:ArchGroup=x64 /p:RuntimeOS=win10 /p:DotNetRestoreSources=$(PB_RestoreSource) /p:DotNetAssetRootUrl=$(PB_AssetRootUrl)",
"PB_TargetQueue": "Windows.10.Amd64+Windows.10.Nano.Amd64+Windows.10.Amd64.Core+Windows.7.Amd64+Windows.81.Amd64",
"PB_CreateHelixArguments": "/p:ArchGroup=x64 /p:ConfigurationGroup=Release /p:TestProduct=corefx /p:TimeoutInSeconds=1200 /p:TargetOS=Windows_NT"
"PB_CreateHelixArguments": "/p:ArchGroup=x64 /p:ConfigurationGroup=$(PB_ConfigurationGroup) /p:TestProduct=corefx /p:TimeoutInSeconds=1200 /p:TargetOS=Windows_NT"
},
"ReportingParameters": {
"OperatingSystem": "Windows",
"Type": "build/product/",
"Platform": "x64",
"ConfigurationGroup": "Release",
"SubType": "netcoreapp"
}
},
@ -159,17 +166,16 @@
"Name": "DotNet-CoreFx-Trusted-Windows",
"Parameters": {
"PB_Platform": "x86",
"PB_BuildArguments": "-buildArch=x86 -Release -- /p:SignType=$(PB_SignType) /p:RuntimeOS=win10",
"PB_BuildTestsArguments": "-buildArch=x86 -Release -SkipTests -Outerloop -- /p:RuntimeOS=win10 /p:ArchiveTests=true",
"PB_SyncArguments": "-p -- /p:ArchGroup=x86 /p:RuntimeOS=win10",
"PB_BuildArguments": "-buildArch=x86 -$(PB_ConfigurationGroup) -- /p:SignType=$(PB_SignType) /p:RuntimeOS=win10",
"PB_BuildTestsArguments": "-buildArch=x86 -$(PB_ConfigurationGroup) -SkipTests -Outerloop -- /p:RuntimeOS=win10 /p:ArchiveTests=true",
"PB_SyncArguments": "-p -- /p:ArchGroup=x86 /p:RuntimeOS=win10 /p:DotNetRestoreSources=$(PB_RestoreSource) /p:DotNetAssetRootUrl=$(PB_AssetRootUrl)",
"PB_TargetQueue": "Windows.10.Amd64+Windows.10.Amd64.Core+Windows.7.Amd64+Windows.81.Amd64",
"PB_CreateHelixArguments": "/p:ArchGroup=x86 /p:ConfigurationGroup=Release /p:TestProduct=corefx /p:TimeoutInSeconds=1200 /p:TargetOS=Windows_NT"
"PB_CreateHelixArguments": "/p:ArchGroup=x86 /p:ConfigurationGroup=$(PB_ConfigurationGroup) /p:TestProduct=corefx /p:TimeoutInSeconds=1200 /p:TargetOS=Windows_NT"
},
"ReportingParameters": {
"OperatingSystem": "Windows",
"Type": "build/product/",
"Platform": "x86",
"ConfigurationGroup": "Release",
"SubType": "netcoreapp"
}
},
@ -177,17 +183,16 @@
"Name": "DotNet-CoreFx-Trusted-Windows",
"Parameters": {
"PB_Platform": "arm",
"PB_BuildArguments": "-framework=uap -buildArch=arm -Release -- /p:SignType=$(PB_SignType) /p:RuntimeOS=win10",
"PB_BuildTestsArguments": "-framework=uap -buildArch=arm -Release -SkipTests -Outerloop -- /p:RuntimeOS=win10 /p:ArchiveTests=true",
"PB_SyncArguments": "-p -- /p:ArchGroup=arm /p:RuntimeOS=win10 /p:TargetGroup=uap",
"PB_BuildArguments": "-framework=uap -buildArch=arm -$(PB_ConfigurationGroup) -- /p:SignType=$(PB_SignType) /p:RuntimeOS=win10",
"PB_BuildTestsArguments": "-framework=uap -buildArch=arm -$(PB_ConfigurationGroup) -SkipTests -Outerloop -- /p:RuntimeOS=win10 /p:ArchiveTests=true",
"PB_SyncArguments": "-p -- /p:ArchGroup=arm /p:RuntimeOS=win10 /p:TargetGroup=uap /p:DotNetRestoreSources=$(PB_RestoreSource) /p:DotNetAssetRootUrl=$(PB_AssetRootUrl)",
"PB_TargetQueue": "Windows.10.Arm64",
"PB_CreateHelixArguments": "/p:ArchGroup=arm /p:TargetGroup=uap /p:ConfigurationGroup=Release /p:TestProduct=corefx /p:TimeoutInSeconds=1200 /p:TargetOS=Windows_NT /p:\"HelixJobType=test/functional/uwp/\""
"PB_CreateHelixArguments": "/p:ArchGroup=arm /p:TargetGroup=uap /p:ConfigurationGroup=$(PB_ConfigurationGroup) /p:TestProduct=corefx /p:TimeoutInSeconds=1200 /p:TargetOS=Windows_NT /p:\"HelixJobType=test/functional/uwp/\""
},
"ReportingParameters": {
"OperatingSystem": "Windows",
"Type": "build/product/",
"Platform": "arm",
"ConfigurationGroup": "Release",
"SubType": "uap"
}
},
@ -195,17 +200,16 @@
"Name": "DotNet-CoreFx-Trusted-Windows",
"Parameters": {
"PB_Platform": "x64",
"PB_BuildArguments": "-framework=uap -buildArch=x64 -Release -- /p:SignType=$(PB_SignType) /p:RuntimeOS=win10",
"PB_BuildTestsArguments": "-framework=uap -buildArch=x64 -Release -SkipTests -Outerloop -- /p:RuntimeOS=win10 /p:ArchiveTests=true",
"PB_SyncArguments": "-p -- /p:ArchGroup=x64 /p:RuntimeOS=win10 /p:TargetGroup=uap",
"PB_BuildArguments": "-framework=uap -buildArch=x64 -$(PB_ConfigurationGroup) -- /p:SignType=$(PB_SignType) /p:RuntimeOS=win10",
"PB_BuildTestsArguments": "-framework=uap -buildArch=x64 -$(PB_ConfigurationGroup) -SkipTests -Outerloop -- /p:RuntimeOS=win10 /p:ArchiveTests=true",
"PB_SyncArguments": "-p -- /p:ArchGroup=x64 /p:RuntimeOS=win10 /p:TargetGroup=uap /p:DotNetRestoreSources=$(PB_RestoreSource) /p:DotNetAssetRootUrl=$(PB_AssetRootUrl)",
"PB_TargetQueue": "Windows.10.Amd64.ClientRS3",
"PB_CreateHelixArguments": "/p:ArchGroup=x64 /p:TargetGroup=uap /p:ConfigurationGroup=Release /p:TestProduct=corefx /p:TimeoutInSeconds=1200 /p:TargetOS=Windows_NT /p:\"HelixJobType=test/functional/uwp/\""
"PB_CreateHelixArguments": "/p:ArchGroup=x64 /p:TargetGroup=uap /p:ConfigurationGroup=$(PB_ConfigurationGroup) /p:TestProduct=corefx /p:TimeoutInSeconds=1200 /p:TargetOS=Windows_NT /p:\"HelixJobType=test/functional/uwp/\""
},
"ReportingParameters": {
"OperatingSystem": "Windows",
"Type": "build/product/",
"Platform": "x64",
"ConfigurationGroup": "Release",
"SubType": "uap"
}
},
@ -213,17 +217,16 @@
"Name": "DotNet-CoreFx-Trusted-Windows",
"Parameters": {
"PB_Platform": "x86",
"PB_BuildArguments": "-framework=uap -buildArch=x86 -Release -- /p:SignType=$(PB_SignType) /p:RuntimeOS=win10",
"PB_BuildTestsArguments": "-framework=uap -buildArch=x86 -Release -SkipTests -Outerloop -- /p:RuntimeOS=win10 /p:ArchiveTests=true",
"PB_SyncArguments": "-p -- /p:ArchGroup=x86 /p:RuntimeOS=win10 /p:TargetGroup=uap",
"PB_BuildArguments": "-framework=uap -buildArch=x86 -$(PB_ConfigurationGroup) -- /p:SignType=$(PB_SignType) /p:RuntimeOS=win10",
"PB_BuildTestsArguments": "-framework=uap -buildArch=x86 -$(PB_ConfigurationGroup) -SkipTests -Outerloop -- /p:RuntimeOS=win10 /p:ArchiveTests=true",
"PB_SyncArguments": "-p -- /p:ArchGroup=x86 /p:RuntimeOS=win10 /p:TargetGroup=uap /p:DotNetRestoreSources=$(PB_RestoreSource) /p:DotNetAssetRootUrl=$(PB_AssetRootUrl)",
"PB_TargetQueue": "Windows.10.Amd64.ClientRS3",
"PB_CreateHelixArguments": "/p:ArchGroup=x86 /p:TargetGroup=uap /p:ConfigurationGroup=Release /p:TestProduct=corefx /p:TimeoutInSeconds=1200 /p:TargetOS=Windows_NT /p:\"HelixJobType=test/functional/uwp/\""
"PB_CreateHelixArguments": "/p:ArchGroup=x86 /p:TargetGroup=uap /p:ConfigurationGroup=$(PB_ConfigurationGroup) /p:TestProduct=corefx /p:TimeoutInSeconds=1200 /p:TargetOS=Windows_NT /p:\"HelixJobType=test/functional/uwp/\""
},
"ReportingParameters": {
"OperatingSystem": "Windows",
"Type": "build/product/",
"Platform": "x86",
"ConfigurationGroup": "Release",
"SubType": "uap"
}
},
@ -231,17 +234,30 @@
"Name": "DotNet-CoreFx-Trusted-Windows",
"Parameters": {
"PB_Platform": "arm",
"PB_BuildArguments": "-framework=uapaot -buildArch=arm -Release -- /p:SignType=$(PB_SignType) /p:RuntimeOS=win10",
"PB_BuildTestsArguments": "-framework=uapaot -buildArch=arm -Release -SkipTests -Outerloop -- /p:RuntimeOS=win10 /p:ArchiveTests=true",
"PB_SyncArguments": "-p -- /p:ArchGroup=arm /p:RuntimeOS=win10 /p:TargetGroup=uapaot",
"PB_BuildArguments": "-framework=uapaot -buildArch=arm -$(PB_ConfigurationGroup) -- /p:SignType=$(PB_SignType) /p:RuntimeOS=win10 /p:DotNetRestoreSources=$(PB_RestoreSource) /p:DotNetAssetRootUrl=$(PB_AssetRootUrl)",
"PB_BuildTestsArguments": "-framework=uapaot -buildArch=arm -$(PB_ConfigurationGroup) -SkipTests -Outerloop -- /p:RuntimeOS=win10 /p:ArchiveTests=true",
"PB_SyncArguments": "-p -- /p:ArchGroup=arm /p:RuntimeOS=win10 /p:TargetGroup=uapaot /p:DotNetRestoreSources=$(PB_RestoreSource) /p:DotNetAssetRootUrl=$(PB_AssetRootUrl)",
"PB_TargetQueue": "Windows.10.Amd64",
"PB_CreateHelixArguments": "/p:ArchGroup=arm /p:TargetGroup=uapaot /p:ConfigurationGroup=Release /p:SecondaryQueue=Windows.10.Arm64 /p:TestProduct=corefx /p:TimeoutInSeconds=1200 /p:TargetOS=Windows_NT /p:\"HelixJobType=test/functional/ilc/\""
"PB_CreateHelixArguments": "/p:ArchGroup=arm /p:TargetGroup=uapaot /p:ConfigurationGroup=$(PB_ConfigurationGroup) /p:SecondaryQueue=Windows.10.Arm64 /p:TestProduct=corefx /p:TimeoutInSeconds=1200 /p:TargetOS=Windows_NT /p:\"HelixJobType=test/functional/ilc/\""
},
"ReportingParameters": {
"OperatingSystem": "Windows",
"Type": "build/product/",
"Platform": "arm",
"ConfigurationGroup": "Release",
"SubType": "uapaot"
}
},
{
"Name": "DotNet-CoreFx-Trusted-Windows-NoTest",
"Parameters": {
"PB_Platform": "arm64",
"PB_BuildArguments": "-framework=uapaot -buildArch=arm64 -$(PB_ConfigurationGroup) -- /p:SignType=$(PB_SignType) /p:RuntimeOS=win10 /p:DotNetRestoreSources=$(PB_RestoreSource) /p:DotNetAssetRootUrl=$(PB_AssetRootUrl)",
"PB_SyncArguments": "-p -- /p:ArchGroup=arm64 /p:RuntimeOS=win10 /p:TargetGroup=uapaot /p:DotNetRestoreSources=$(PB_RestoreSource) /p:DotNetAssetRootUrl=$(PB_AssetRootUrl)",
},
"ReportingParameters": {
"OperatingSystem": "Windows",
"Type": "build/product/",
"Platform": "arm64",
"SubType": "uapaot"
}
},
@ -249,17 +265,16 @@
"Name": "DotNet-CoreFx-Trusted-Windows",
"Parameters": {
"PB_Platform": "x64",
"PB_BuildArguments": "-framework=uapaot -buildArch=x64 -Release -- /p:SignType=$(PB_SignType) /p:RuntimeOS=win10",
"PB_BuildTestsArguments": "-framework=uapaot -buildArch=x64 -Release -SkipTests -Outerloop -- /p:RuntimeOS=win10 /p:ArchiveTests=true",
"PB_SyncArguments": "-p -- /p:ArchGroup=x64 /p:RuntimeOS=win10 /p:TargetGroup=uapaot",
"PB_BuildArguments": "-framework=uapaot -buildArch=x64 -$(PB_ConfigurationGroup) -- /p:SignType=$(PB_SignType) /p:RuntimeOS=win10 /p:DotNetRestoreSources=$(PB_RestoreSource) /p:DotNetAssetRootUrl=$(PB_AssetRootUrl)",
"PB_BuildTestsArguments": "-framework=uapaot -buildArch=x64 -$(PB_ConfigurationGroup) -SkipTests -Outerloop -- /p:RuntimeOS=win10 /p:ArchiveTests=true",
"PB_SyncArguments": "-p -- /p:ArchGroup=x64 /p:RuntimeOS=win10 /p:TargetGroup=uapaot /p:DotNetRestoreSources=$(PB_RestoreSource) /p:DotNetAssetRootUrl=$(PB_AssetRootUrl)",
"PB_TargetQueue": "Windows.10.Amd64.ClientRS3",
"PB_CreateHelixArguments": "/p:ArchGroup=x64 /p:TargetGroup=uapaot /p:ConfigurationGroup=Release /p:TestProduct=corefx /p:TimeoutInSeconds=1200 /p:TargetOS=Windows_NT /p:\"HelixJobType=test/functional/ilc/\""
"PB_CreateHelixArguments": "/p:ArchGroup=x64 /p:TargetGroup=uapaot /p:ConfigurationGroup=$(PB_ConfigurationGroup) /p:TestProduct=corefx /p:TimeoutInSeconds=1200 /p:TargetOS=Windows_NT /p:\"HelixJobType=test/functional/ilc/\""
},
"ReportingParameters": {
"OperatingSystem": "Windows",
"Type": "build/product/",
"Platform": "x64",
"ConfigurationGroup": "Release",
"SubType": "uapaot"
}
},
@ -267,17 +282,16 @@
"Name": "DotNet-CoreFx-Trusted-Windows",
"Parameters": {
"PB_Platform": "x86",
"PB_BuildArguments": "-framework=uapaot -buildArch=x86 -Release -- /p:SignType=$(PB_SignType) /p:RuntimeOS=win10",
"PB_BuildTestsArguments": "-framework=uapaot -buildArch=x86 -Release -SkipTests -Outerloop -- /p:RuntimeOS=win10 /p:ArchiveTests=true",
"PB_SyncArguments": "-p -- /p:ArchGroup=x86 /p:RuntimeOS=win10",
"PB_BuildArguments": "-framework=uapaot -buildArch=x86 -$(PB_ConfigurationGroup) -- /p:SignType=$(PB_SignType) /p:RuntimeOS=win10 /p:DotNetRestoreSources=$(PB_RestoreSource) /p:DotNetAssetRootUrl=$(PB_AssetRootUrl)",
"PB_BuildTestsArguments": "-framework=uapaot -buildArch=x86 -$(PB_ConfigurationGroup) -SkipTests -Outerloop -- /p:RuntimeOS=win10 /p:ArchiveTests=true",
"PB_SyncArguments": "-p -- /p:ArchGroup=x86 /p:RuntimeOS=win10 /p:DotNetRestoreSources=$(PB_RestoreSource) /p:DotNetAssetRootUrl=$(PB_AssetRootUrl)",
"PB_TargetQueue": "Windows.10.Amd64.ClientRS3",
"PB_CreateHelixArguments": "/p:ArchGroup=x86 /p:TargetGroup=uapaot /p:ConfigurationGroup=Release /p:TestProduct=corefx /p:TimeoutInSeconds=1200 /p:TargetOS=Windows_NT /p:\"HelixJobType=test/functional/ilc/\""
"PB_CreateHelixArguments": "/p:ArchGroup=x86 /p:TargetGroup=uapaot /p:ConfigurationGroup=$(PB_ConfigurationGroup) /p:TestProduct=corefx /p:TimeoutInSeconds=1200 /p:TargetOS=Windows_NT /p:\"HelixJobType=test/functional/ilc/\""
},
"ReportingParameters": {
"OperatingSystem": "Windows",
"Type": "build/product/",
"Platform": "x86",
"ConfigurationGroup": "Release",
"SubType": "uapaot"
}
},
@ -285,14 +299,13 @@
"Name": "DotNet-CoreFx-Trusted-Windows-NoTest",
"Parameters": {
"PB_Platform": "x64",
"PB_BuildArguments": "-allConfigurations -buildArch=x64 -Release -- /p:SignType=$(PB_SignType) /p:RuntimeOS=win10",
"PB_SyncArguments": "-p -- /p:ArchGroup=x64 /p:RuntimeOS=win10"
"PB_BuildArguments": "-allConfigurations -buildArch=x64 -$(PB_ConfigurationGroup) -- /p:SignType=$(PB_SignType) /p:RuntimeOS=win10",
"PB_SyncArguments": "-p -- /p:ArchGroup=x64 /p:RuntimeOS=win10 /p:BuildAllConfigurations=true /p:DotNetRestoreSources=$(PB_RestoreSource) /p:DotNetAssetRootUrl=$(PB_AssetRootUrl)"
},
"ReportingParameters": {
"OperatingSystem": "Windows",
"Type": "build/product/",
"Platform": "x64",
"ConfigurationGroup": "Release",
"SubType": "AllConfigurations"
}
},
@ -300,17 +313,16 @@
"Name": "DotNet-CoreFx-Trusted-Windows",
"Parameters": {
"PB_Platform": "x64",
"PB_BuildArguments": "-framework=netfx -buildArch=x64 -Release -- /p:SignType=$(PB_SignType) /p:RuntimeOS=win10",
"PB_BuildTestsArguments": "-framework=netfx -buildArch=x64 -Release -SkipTests -Outerloop -- /p:RuntimeOS=win10 /p:ArchiveTests=true",
"PB_SyncArguments": "-p -- /p:ArchGroup=x64 /p:RuntimeOS=win10 /p:TargetGroup=netfx",
"PB_BuildArguments": "-framework=netfx -buildArch=x64 -$(PB_ConfigurationGroup) -- /p:SignType=$(PB_SignType) /p:RuntimeOS=win10",
"PB_BuildTestsArguments": "-framework=netfx -buildArch=x64 -$(PB_ConfigurationGroup) -SkipTests -Outerloop -- /p:RuntimeOS=win10 /p:ArchiveTests=true",
"PB_SyncArguments": "-p -- /p:ArchGroup=x64 /p:RuntimeOS=win10 /p:TargetGroup=netfx /p:DotNetRestoreSources=$(PB_RestoreSource) /p:DotNetAssetRootUrl=$(PB_AssetRootUrl)",
"PB_TargetQueue": "Windows.10.Amd64",
"PB_CreateHelixArguments": "/p:EnableCloudTest=false /p:ArchGroup=x64 /p:TargetGroup=netfx /p:ConfigurationGroup=Release /p:TestProduct=corefx /p:TimeoutInSeconds=1200 /p:TargetOS=Windows_NT /p:\"HelixJobType=test/functional/desktop/cli/\""
"PB_CreateHelixArguments": "/p:ArchGroup=x64 /p:TargetGroup=netfx /p:ConfigurationGroup=$(PB_ConfigurationGroup) /p:TestProduct=corefx /p:TimeoutInSeconds=1200 /p:TargetOS=Windows_NT /p:\"HelixJobType=test/functional/desktop/cli/\""
},
"ReportingParameters": {
"OperatingSystem": "Windows",
"Type": "build/product/",
"Platform": "x64",
"ConfigurationGroup": "Release",
"SubType": "netfx"
}
},
@ -318,283 +330,26 @@
"Name": "DotNet-CoreFx-Trusted-Windows",
"Parameters": {
"PB_Platform": "x86",
"PB_BuildArguments": "-framework=netfx -buildArch=x86 -Release -- /p:SignType=$(PB_SignType) /p:RuntimeOS=win10",
"PB_BuildTestsArguments": "-framework=netfx -buildArch=x86 -Release -SkipTests -Outerloop -- /p:RuntimeOS=win10 /p:ArchiveTests=true",
"PB_SyncArguments": "-p -- /p:ArchGroup=x86 /p:RuntimeOS=win10 /p:TargetGroup=netfx",
"PB_BuildArguments": "-framework=netfx -buildArch=x86 -$(PB_ConfigurationGroup) -- /p:SignType=$(PB_SignType) /p:RuntimeOS=win10",
"PB_BuildTestsArguments": "-framework=netfx -buildArch=x86 -$(PB_ConfigurationGroup) -SkipTests -Outerloop -- /p:RuntimeOS=win10 /p:ArchiveTests=true",
"PB_SyncArguments": "-p -- /p:ArchGroup=x86 /p:RuntimeOS=win10 /p:TargetGroup=netfx /p:DotNetRestoreSources=$(PB_RestoreSource) /p:DotNetAssetRootUrl=$(PB_AssetRootUrl)",
"PB_TargetQueue": "Windows.10.Amd64",
"PB_CreateHelixArguments": "/p:EnableCloudTest=false /p:ArchGroup=x86 /p:TargetGroup=netfx /p:ConfigurationGroup=Release /p:TestProduct=corefx /p:TimeoutInSeconds=1200 /p:TargetOS=Windows_NT /p:\"HelixJobType=test/functional/desktop/cli/\""
"PB_CreateHelixArguments": "/p:ArchGroup=x86 /p:TargetGroup=netfx /p:ConfigurationGroup=$(PB_ConfigurationGroup) /p:TestProduct=corefx /p:TimeoutInSeconds=1200 /p:TargetOS=Windows_NT /p:\"HelixJobType=test/functional/desktop/cli/\""
},
"ReportingParameters": {
"OperatingSystem": "Windows",
"Type": "build/product/",
"Platform": "x86",
"ConfigurationGroup": "Release",
"SubType": "netfx"
}
}
]
},
{
"Name": "Trusted-All-Debug-Linux",
"Name": "Publish Packages",
"Parameters": {
"TreatWarningsAsErrors": "false"
},
"BuildParameters": {
"PB_ConfigurationGroup": "Debug"
},
"Definitions": [{
"Name": "DotNet-CoreFx-Trusted-Linux",
"Parameters": {
"PB_DockerTag": "centos-7-34f1db9-20171620021620",
"PB_BuildArguments": "-buildArch=x64 -Debug",
"PB_BuildTestsArguments": "-buildArch=x64 -Debug -SkipTests -Outerloop -- /p:ArchiveTests=true /p:EnableDumpling=true",
"PB_SyncArguments": "-p -- /p:ArchGroup=x64",
"PB_TargetQueue": "Centos.73.Amd64+RedHat.72.Amd64+RedHat.73.Amd64+Debian.87.Amd64+Debian.90.Amd64+Ubuntu.1404.Amd64+Ubuntu.1604.Amd64+Ubuntu.1704.Amd64+Ubuntu.1710.Amd64+suse.422.amd64+SLES.12.Amd64+fedora.25.amd64+Fedora.26.Amd64",
"PB_CreateHelixArguments": "/p:ArchGroup=x64 /p:ConfigurationGroup=Debug /p:TestProduct=corefx /p:TimeoutInSeconds=1200 /p:TargetOS=Linux"
},
"ReportingParameters": {
"OperatingSystem": "Linux",
"Platform": "x64",
"Type": "build/product/",
"ConfigurationGroup": "Debug"
}
},
{
"Name": "DotNet-CoreFx-Trusted-Linux",
"Parameters": {
"PB_DockerTag": "centos-6-c8c9b08-20174310104313",
"PB_BuildArguments": "-buildArch=x64 -Debug -RuntimeOS=rhel.6 -- /p:PortableBuild=false",
"PB_BuildTestsArguments": "-buildArch=x64 -Debug -SkipTests -Outerloop -RuntimeOS=rhel.6 -- /p:ArchiveTests=true /p:EnableDumpling=true /p:PortableBuild=false",
"PB_SyncArguments": "-p -RuntimeOS=rhel.6 -- /p:ArchGroup=x64 /p:PortableBuild=false",
"PB_TargetQueue": "RedHat.69.Amd64",
"PB_CreateHelixArguments": "/p:ArchGroup=x64 /p:ConfigurationGroup=Debug /p:TestProduct=corefx /p:TimeoutInSeconds=1200 /p:TargetOS=Linux"
},
"ReportingParameters": {
"OperatingSystem": "RedHat6",
"Platform": "x64",
"Type": "build/product/",
"ConfigurationGroup": "Debug"
}
},
{
"Name": "DotNet-CoreFx-Trusted-Linux-Crossbuild",
"Parameters": {
"PB_DockerTag": "ubuntu-14.04-cross-0cd4667-20170319080304",
"PB_Architecture": "arm",
"PB_BuildArguments": "-buildArch=arm -Debug",
"PB_SyncArguments": "-p -- /p:ArchGroup=arm"
},
"ReportingParameters": {
"OperatingSystem": "Linux",
"Platform": "arm",
"Type": "build/product/",
"ConfigurationGroup": "Debug"
}
}
]
},
{
"Name": "Trusted-All-Debug-OSX",
"Parameters": {
"TreatWarningsAsErrors": "false"
},
"BuildParameters": {
"PB_BuildArguments": "-buildArch=x64 -Debug",
"PB_BuildTestsArguments": "-buildArch=x64 -Debug -SkipTests -Outerloop -- /p:ArchiveTests=true",
"PB_SyncArguments": "-p -- /p:ArchGroup=x64",
"PB_CreateHelixArguments": "/p:EnableCloudTest=false /p:ArchGroup=x64 /p:ConfigurationGroup=Debug /p:TestProduct=corefx /p:TimeoutInSeconds=1200 /p:\"TargetOS=OSX\""
},
"Definitions": [{
"Name": "DotNet-CoreFx-Trusted-OSX",
"Parameters": {
"PB_TargetQueue": "OSX.1012.Amd64+OSX.1013.Amd64"
},
"ReportingParameters": {
"OperatingSystem": "OSX",
"Platform": "x64",
"Type": "build/product/",
"ConfigurationGroup": "Debug"
}
}]
},
{
"Name": "Trusted-All-Debug-Windows",
"Parameters": {
"TreatWarningsAsErrors": "false"
},
"BuildParameters": {
"PB_ConfigurationGroup": "Debug"
},
"Definitions": [
{
"Name": "DotNet-CoreFx-Trusted-Windows",
"Parameters": {
"PB_Platform": "arm",
"PB_BuildArguments": "-framework=uap -buildArch=arm -Debug -- /p:SignType=$(PB_SignType) /p:RuntimeOS=win10",
"PB_BuildTestsArguments": "-framework=uap -buildArch=arm -Debug -SkipTests -Outerloop -- /p:RuntimeOS=win10 /p:ArchiveTests=true",
"PB_SyncArguments": "-p -- /p:ArchGroup=arm /p:RuntimeOS=win10 /p:TargetGroup=uap",
"PB_TargetQueue": "Windows.10.Arm64",
"PB_CreateHelixArguments": "/p:ArchGroup=arm /p:TargetGroup=uap /p:ConfigurationGroup=Debug /p:TestProduct=corefx /p:TimeoutInSeconds=1200 /p:TargetOS=Windows_NT /p:\"HelixJobType=test/functional/uwp/\""
},
"ReportingParameters": {
"OperatingSystem": "Windows",
"Type": "build/product/",
"Platform": "arm",
"ConfigurationGroup": "Debug",
"SubType": "uap"
}
},
{
"Name": "DotNet-CoreFx-Trusted-Windows",
"Parameters": {
"PB_Platform": "x64",
"PB_BuildArguments": "-framework=uap -buildArch=x64 -Debug -- /p:SignType=$(PB_SignType) /p:RuntimeOS=win10",
"PB_BuildTestsArguments": "-framework=uap -buildArch=x64 -Debug -SkipTests -- /p:RuntimeOS=win10 /p:ArchiveTests=true",
"PB_SyncArguments": "-p -- /p:ArchGroup=x64 /p:RuntimeOS=win10 /p:TargetGroup=uap",
"PB_TargetQueue": "Windows.10.Amd64.ClientRS3",
"PB_CreateHelixArguments": "/p:ArchGroup=x64 /p:TargetGroup=uap /p:ConfigurationGroup=Debug /p:TestProduct=corefx /p:TimeoutInSeconds=1200 /p:TargetOS=Windows_NT /p:\"HelixJobType=test/functional/uwp/\""
},
"ReportingParameters": {
"OperatingSystem": "Windows",
"Type": "build/product/",
"Platform": "x64",
"ConfigurationGroup": "Debug",
"SubType": "uap"
}
},
{
"Name": "DotNet-CoreFx-Trusted-Windows",
"Parameters": {
"PB_Platform": "x86",
"PB_BuildArguments": "-framework=uap -buildArch=x86 -Debug -- /p:SignType=$(PB_SignType) /p:RuntimeOS=win10",
"PB_BuildTestsArguments": "-framework=uap -buildArch=x86 -Debug -SkipTests -- /p:RuntimeOS=win10 /p:ArchiveTests=true",
"PB_SyncArguments": "-p -- /p:ArchGroup=x86 /p:RuntimeOS=win10 /p:TargetGroup=uap",
"PB_TargetQueue": "Windows.10.Amd64.ClientRS3",
"PB_CreateHelixArguments": "/p:ArchGroup=x86 /p:TargetGroup=uap /p:ConfigurationGroup=Debug /p:TestProduct=corefx /p:TimeoutInSeconds=1200 /p:TargetOS=Windows_NT /p:\"HelixJobType=test/functional/uwp/\""
},
"ReportingParameters": {
"OperatingSystem": "Windows",
"Type": "build/product/",
"Platform": "x86",
"ConfigurationGroup": "Debug",
"SubType": "uap"
}
},
{
"Name": "DotNet-CoreFx-Trusted-Windows",
"Parameters": {
"PB_Platform": "arm",
"PB_BuildArguments": "-framework=uapaot -buildArch=arm -Debug -- /p:SignType=$(PB_SignType) /p:RuntimeOS=win10",
"PB_BuildTestsArguments": "-framework=uapaot -buildArch=arm -Debug -SkipTests -- /p:RuntimeOS=win10 /p:ArchiveTests=true",
"PB_SyncArguments": "-p -- /p:ArchGroup=arm /p:RuntimeOS=win10 /p:TargetGroup=uapaot",
"PB_TargetQueue": "Windows.10.Amd64",
"PB_CreateHelixArguments": "/p:ArchGroup=arm /p:TargetGroup=uapaot /p:ConfigurationGroup=Debug /p:SecondaryQueue=Windows.10.Arm64 /p:TestProduct=corefx /p:TimeoutInSeconds=1200 /p:TargetOS=Windows_NT /p:\"HelixJobType=test/functional/ilc/\""
},
"ReportingParameters": {
"OperatingSystem": "Windows",
"Type": "build/product/",
"Platform": "arm",
"ConfigurationGroup": "Debug",
"SubType": "uapaot"
}
},
{
"Name": "DotNet-CoreFx-Trusted-Windows",
"Parameters": {
"PB_Platform": "x64",
"PB_BuildArguments": "-framework:uapaot -buildArch=x64 -Debug -- /p:SignType=$(PB_SignType) /p:RuntimeOS=win10",
"PB_BuildTestsArguments": "-framework=uapaot -buildArch=x64 -Debug -SkipTests -- /p:RuntimeOS=win10 /p:ArchiveTests=true",
"PB_SyncArguments": "-p -- /p:ArchGroup=x64 /p:RuntimeOS=win10 /p:TargetGroup=uapaot",
"PB_TargetQueue": "Windows.10.Amd64.ClientRS3",
"PB_CreateHelixArguments": "/p:ArchGroup=x64 /p:TargetGroup=uapaot /p:ConfigurationGroup=Debug /p:TestProduct=corefx /p:TimeoutInSeconds=1200 /p:TargetOS=Windows_NT /p:\"HelixJobType=test/functional/ilc/\""
},
"ReportingParameters": {
"OperatingSystem": "Windows",
"Type": "build/product/",
"Platform": "x64",
"ConfigurationGroup": "Debug",
"SubType": "uapaot"
}
},
{
"Name": "DotNet-CoreFx-Trusted-Windows",
"Parameters": {
"PB_Platform": "x86",
"PB_BuildArguments": "-framework:uapaot -buildArch=x86 -Debug -- /p:SignType=$(PB_SignType) /p:RuntimeOS=win10",
"PB_BuildTestsArguments": "-framework=uapaot -buildArch=x86 -Debug -SkipTests -- /p:RuntimeOS=win10 /p:ArchiveTests=true",
"PB_SyncArguments": "-p -- /p:ArchGroup=x86 /p:RuntimeOS=win10",
"PB_TargetQueue": "Windows.10.Amd64.ClientRS3",
"PB_CreateHelixArguments": "/p:ArchGroup=x86 /p:TargetGroup=uapaot /p:ConfigurationGroup=Debug /p:TestProduct=corefx /p:TimeoutInSeconds=1200 /p:TargetOS=Windows_NT /p:\"HelixJobType=test/functional/ilc/\""
},
"ReportingParameters": {
"OperatingSystem": "Windows",
"Type": "build/product/",
"Platform": "x86",
"ConfigurationGroup": "Debug",
"SubType": "uapaot"
}
},
{
"Name": "DotNet-CoreFx-Trusted-Windows-NoTest",
"Parameters": {
"PB_Platform": "x64",
"PB_BuildArguments": "-allConfigurations -buildArch=x64 -Debug -- /p:SignType=$(PB_SignType) /p:RuntimeOS=win10",
"PB_SyncArguments": "-p -- /p:ArchGroup=x64 /p:RuntimeOS=win10"
},
"ReportingParameters": {
"OperatingSystem": "Windows",
"Type": "build/product/",
"Platform": "x64",
"ConfigurationGroup": "Debug",
"SubType": "AllConfigurations"
}
},
{
"Name": "DotNet-CoreFx-Trusted-Windows",
"Parameters": {
"PB_Platform": "x64",
"PB_BuildArguments": "-framework=netfx -buildArch=x64 -Debug -- /p:SignType=$(PB_SignType) /p:RuntimeOS=win10",
"PB_BuildTestsArguments": "-framework=netfx -buildArch=x64 -Debug -SkipTests -Outerloop -- /p:RuntimeOS=win10 /p:ArchiveTests=true",
"PB_SyncArguments": "-p -- /p:ArchGroup=x64 /p:RuntimeOS=win10 /p:TargetGroup=netfx",
"PB_TargetQueue": "Windows.10.Amd64",
"PB_CreateHelixArguments": "/p:ArchGroup=x64 /p:TargetGroup=netfx /p:ConfigurationGroup=Debug /p:TestProduct=corefx /p:TimeoutInSeconds=1200 /p:TargetOS=Windows_NT /p:\"HelixJobType=test/functional/desktop/cli/\""
},
"ReportingParameters": {
"OperatingSystem": "Windows",
"Type": "build/product/",
"Platform": "x64",
"ConfigurationGroup": "Debug",
"SubType": "netfx"
}
},
{
"Name": "DotNet-CoreFx-Trusted-Windows",
"Parameters": {
"PB_Platform": "x86",
"PB_BuildArguments": "-framework=netfx -buildArch=x86 -Debug -- /p:SignType=$(PB_SignType) /p:RuntimeOS=win10",
"PB_BuildTestsArguments": "-framework=netfx -buildArch=x86 -Debug -SkipTests -Outerloop -- /p:RuntimeOS=win10 /p:ArchiveTests=true",
"PB_SyncArguments": "-p -- /p:ArchGroup=x86 /p:RuntimeOS=win10 /p:TargetGroup=netfx",
"PB_TargetQueue": "Windows.10.Amd64",
"PB_CreateHelixArguments": "/p:ArchGroup=x86 /p:TargetGroup=netfx /p:ConfigurationGroup=Debug /p:TestProduct=corefx /p:TimeoutInSeconds=1200 /p:TargetOS=Windows_NT /p:\"HelixJobType=test/functional/desktop/cli/\""
},
"ReportingParameters": {
"OperatingSystem": "Windows",
"Type": "build/product/",
"Platform": "x86",
"ConfigurationGroup": "Debug",
"SubType": "netfx"
}
}
]
},
{
"Name": "Publish Packages to Feeds - Release",
"Parameters": {
"TreatWarningsAsErrors": "false"
},
"BuildParameters": {
"PB_ConfigurationGroup": "Release"
},
"Definitions": [{
"Name": "DotNet-Trusted-Publish",
"Parameters": {
@ -604,49 +359,20 @@
"ReportingParameters": {
"TaskName": "Package Publish",
"Type": "build/publish/",
"ConfigurationGroup": "Release - Push to MyGet Feed"
"ConfigurationGroup": "Publish Packages"
}
}],
"DependsOn": [
"Trusted-All-Release-Windows",
"Trusted-All-Release-OSX",
"Trusted-All-Release-Linux"
"Trusted-All-Windows",
"Trusted-All-OSX",
"Trusted-All-Linux"
]
},
{
"Name": "Publish Packages to Drop - Debug",
"Name": "Publish Symbols",
"Parameters": {
"TreatWarningsAsErrors": "false"
},
"BuildParameters": {
"PB_ConfigurationGroup": "Debug"
},
"Definitions": [{
"Name": "DotNet-Trusted-Publish",
"Parameters": {
"PB_VsoRepositoryName": "DotNet-CoreFX-Trusted",
"PB_Repo": "corefx"
},
"ReportingParameters": {
"TaskName": "Package Publish",
"Type": "build/publish/",
"ConfigurationGroup": "Debug - Push to Azure Storage"
}
}],
"DependsOn": [
"Trusted-All-Debug-Windows",
"Trusted-All-Debug-OSX",
"Trusted-All-Debug-Linux"
]
},
{
"Name": "Publish Symbols - Release",
"Parameters": {
"TreatWarningsAsErrors": "false"
},
"BuildParameters": {
"PB_ConfigurationGroup": "Release"
},
"Definitions": [{
"Name": "DotNet-Trusted-Publish-Symbols",
"Parameters": {
@ -655,13 +381,13 @@
"ReportingParameters": {
"TaskName": "Symbol Publish",
"Type": "build/publish/",
"ConfigurationGroup": "Release - Publish Symbols"
"ConfigurationGroup": "Publish Symbols"
}
}],
"DependsOn": [
"Trusted-All-Release-Windows",
"Trusted-All-Release-OSX",
"Trusted-All-Release-Linux"
"Trusted-All-Windows",
"Trusted-All-OSX",
"Trusted-All-Linux"
]
}
]

View File

@ -16,12 +16,14 @@ def branch = GithubBranchName
def linPipeline = Pipeline.createPipelineForGithub(this, project, branch, 'buildpipeline/linux.groovy')
def centos6Pipeline = Pipeline.createPipelineForGithub(this, project, branch, 'buildpipeline/centos.6.groovy')
def alpine36Pipeline = Pipeline.createPipelineForGithub(this, project, branch, 'buildpipeline/alpine.3.6.groovy')
def osxPipeline = Pipeline.createPipelineForGithub(this, project, branch, 'buildpipeline/osx.groovy')
def winPipeline = Pipeline.createPipelineForGithub(this, project, branch, 'buildpipeline/windows.groovy')
def configurations = [
['TGroup':"netcoreapp", 'Pipeline':linPipeline, 'Name':'Linux' ,'ForPR':"Release-x64", 'Arch':['x64']],
['TGroup':"netcoreapp", 'Pipeline':centos6Pipeline, 'Name':'CentOS.6' ,'ForPR':"", 'Arch':['x64']],
['TGroup':"netcoreapp", 'Pipeline':alpine36Pipeline, 'Name':'Alpine.3.6' ,'ForPR':"Debug-x64", 'Arch':['x64']],
['TGroup':"netcoreapp", 'Pipeline':osxPipeline, 'Name':'OSX', 'ForPR':"Debug-x64", 'Arch':['x64']],
['TGroup':"netcoreapp", 'Pipeline':winPipeline, 'Name':'Windows' , 'ForPR':"Debug-x64|Release-x86"],
['TGroup':"netfx", 'Pipeline':winPipeline, 'Name':'NETFX', 'ForPR':"Release-x86"],
@ -62,4 +64,4 @@ JobReport.Report.generateJobReport(out)
// Make the call to generate the help job
Utilities.createHelperJob(this, project, branch,
"Welcome to the ${project} Repository", // This is prepended to the help message
"Have a nice day!") // This is appended to the help message. You might put known issues here.
"Have a nice day!") // This is appended to the help message. You might put known issues here.

View File

@ -28,6 +28,9 @@
<AdditionalProperties>Configuration=%(Identity);%(_projectBuildConfigurations.AdditionalProperties)</AdditionalProperties>
</_projectBuildConfigurations>
<!-- we need to ignore placeholder build configurations that start with _ -->
<_projectBuildConfigurations Remove="@(_projectBuildConfigurations)" Condition="$([System.String]::Copy('%(Identity)').StartsWith('_'))" />
<!-- transform back to project -->
<_projectWithConfiguration Include="@(_projectBuildConfigurations->'%(OriginalItemSpec)')" />
</ItemGroup>
@ -54,6 +57,9 @@
<AdditionalProperties>Configuration=%(Identity);%(_NonPkgProjProjectReferenceBuildConfigurations.AdditionalProperties)</AdditionalProperties>
</_NonPkgProjProjectReferenceBuildConfigurations>
<!-- we need to ignore placeholder build configurations that start with _ -->
<_NonPkgProjProjectReferenceBuildConfigurations Remove="@(_NonPkgProjProjectReferenceBuildConfigurations)" Condition="$([System.String]::Copy('%(Identity)').StartsWith('_'))" />
<!-- transform back to project -->
<_NonPkgProjProjectReferenceWitnConfiguration Include="@(_NonPkgProjProjectReferenceBuildConfigurations->'%(OriginalItemSpec)')" />
</ItemGroup>
@ -176,6 +182,8 @@
<Target Name="_getAllBuildConfigurations">
<ItemGroup>
<_buildConfigurations Include="$(BuildConfigurations)" />
<!-- For BuildAllConfigurations we need to ignore any placeholder build configuration that starts with _ -->
<_buildConfigurations Remove="@(_buildConfigurations)" Condition="$([System.String]::Copy('%(Identity)').StartsWith('_'))" />
<_buildConfigurations Condition="'@(_buildConfigurations)' == ''" Include="$(_traversalBuildConfigurations)" />
</ItemGroup>
</Target>

View File

@ -1,19 +1,30 @@
@if not defined _echo @echo off
setlocal EnableDelayedExpansion
echo Stop VBCSCompiler.exe execution.
for /f "tokens=2 delims=," %%F in ('tasklist /nh /fi "imagename eq VBCSCompiler.exe" /fo csv') do taskkill /f /PID %%~F
set NO_DASHES_ARG=%1
if not defined NO_DASHES_ARG goto no_help
if /I [%NO_DASHES_ARG:-=%] == [?] goto Usage
if /I [%NO_DASHES_ARG:-=%] == [h] goto Usage
:no_help
:: Check if VBCSCompiler.exe is running
tasklist /fi "imagename eq VBCSCompiler.exe" |find ":" > nul
:: Compiler is running if errorlevel == 1
if errorlevel 1 (
echo Stop VBCSCompiler.exe execution.
for /f "tokens=2 delims=," %%F in ('tasklist /nh /fi "imagename eq VBCSCompiler.exe" /fo csv') do taskkill /f /PID %%~F
)
:: Strip all dashes off the argument and use invariant
:: compare to match as many versions of "all" that we can
:: All other argument validation happens inside Run.exe
set NO_DASHES_ARG=%1
if not defined NO_DASHES_ARG goto no_args
if /I [%NO_DASHES_ARG:-=%] == [all] (
echo Cleaning entire working directory ...
call git clean -xdf
exit /b !ERRORLEVEL!
)
:no_args
if [%1]==[] set __args=-b
call %~dp0run.cmd clean %__args% %*
@ -21,14 +32,13 @@ exit /b %ERRORLEVEL%
:Usage
echo.
echo Usage: clean [-b] [-p] [-c] [-all]
echo Repository cleaning script.
echo.
echo Options:
echo -b - Deletes the binary output directory.
echo -p - Deletes the repo-local nuget package directory.
echo -c - Deletes the user-local nuget package cache.
echo -all - Combines all of the above.
echo -b - Delete the binary output directory.
echo -p - Delete the repo-local NuGet package directory.
echo -c - Deletes the user-local NuGet package cache.
echo -all - Cleans repository and restores it to pristine state.
echo.
echo If no option is specified then clean.cmd -b is implied.
exit /b 1
echo ^If no option is specified then "clean -b" is implied.
exit /b

View File

@ -18,6 +18,8 @@ if [ "$1" == "-?" ] || [ "$1" == "-h" ]; then
usage
fi
# Implement VBCSCompiler.exe kill logic once VBCSCompiler.exe is ported to unixes
__working_tree_root="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
if [ "$*" == "-all" ]
@ -31,5 +33,5 @@ if [ $# == 0 ]; then
__args=-b
fi
$__working_tree_root/run.sh clean $__args $*
$__working_tree_root/run.sh clean $__args "$@"
exit $?

View File

@ -9,39 +9,52 @@
These ref versions are pulled from https://github.com/dotnet/versions.
-->
<PropertyGroup>
<CoreFxCurrentRef>3a5b9d25514fe788eeeb6ecdca6c5b187703d5f3</CoreFxCurrentRef>
<CoreClrCurrentRef>41cec0941b3e81e30e69648c44110acc2a069bba</CoreClrCurrentRef>
<CoreSetupCurrentRef>41cec0941b3e81e30e69648c44110acc2a069bba</CoreSetupCurrentRef>
<CoreFxCurrentRef>3c5f8e69e456790cc711a78c66b89f5b8035f02b</CoreFxCurrentRef>
<CoreClrCurrentRef>f9f2dcffe189a681d43949ee3b02dd1fc9d9e636</CoreClrCurrentRef>
<CoreSetupCurrentRef>3c5f8e69e456790cc711a78c66b89f5b8035f02b</CoreSetupCurrentRef>
<ExternalCurrentRef>96dc7805f5df4a70a55783964ce69dcd91bfca80</ExternalCurrentRef>
<ProjectNTfsCurrentRef>20f0758de84e9de4a31912d79333a34b16017a21</ProjectNTfsCurrentRef>
<ProjectNTfsTestILCCurrentRef>20f0758de84e9de4a31912d79333a34b16017a21</ProjectNTfsTestILCCurrentRef>
<ProjectNTfsCurrentRef>f9f2dcffe189a681d43949ee3b02dd1fc9d9e636</ProjectNTfsCurrentRef>
<ProjectNTfsTestILCCurrentRef>f9f2dcffe189a681d43949ee3b02dd1fc9d9e636</ProjectNTfsTestILCCurrentRef>
<SniCurrentRef>8bd1ec5fac9f0eec34ff6b34b1d878b4359e02dd</SniCurrentRef>
<StandardCurrentRef>3814b0d53f4139b68c2fac85c28030fe8fa50a9d</StandardCurrentRef>
<BuildToolsCurrentRef>075b515e3dfb615b45182c033af48abed349eea5</BuildToolsCurrentRef>
<StandardCurrentRef>6298244e25cf84d91e3cda9627315f2425274624</StandardCurrentRef>
<BuildToolsCurrentRef>e697c7d95c14fc4e39a0de1a09d0dd9f1faf3f92</BuildToolsCurrentRef>
</PropertyGroup>
<!-- Auto-upgraded properties for each build info dependency. -->
<!-- Product dependency versions. -->
<PropertyGroup>
<PlatformPackageVersion>2.1.0-preview1-25819-01</PlatformPackageVersion>
<CoreFxExpectedPrerelease>preview1-25819-01</CoreFxExpectedPrerelease>
<CoreClrPackageVersion>2.1.0-preview1-25818-04</CoreClrPackageVersion>
<ExternalExpectedPrerelease>beta-25627-00</ExternalExpectedPrerelease>
<ProjectNTfsExpectedPrerelease>beta-25813-00</ProjectNTfsExpectedPrerelease>
<ProjectNTfsTestILCExpectedPrerelease>beta-25813-00</ProjectNTfsTestILCExpectedPrerelease>
<ProjectNTfsTestILCPackageVersion>1.0.0-beta-25813-00</ProjectNTfsTestILCPackageVersion>
<NETStandardPackageVersion>2.1.0-preview1-25818-01</NETStandardPackageVersion>
<NETStandardPackageId>NETStandard.Library</NETStandardPackageId>
<MicrosoftNETCoreAppPackageVersion>2.1.0-preview1-25818-02</MicrosoftNETCoreAppPackageVersion>
<!-- Use the SNI runtime package -->
<SniPackageVersion>4.4.0</SniPackageVersion>
<NETStandardLibraryPackageVersion>2.0.1</NETStandardLibraryPackageVersion>
<NETStandardLibraryPackageId>NETStandard.Library</NETStandardLibraryPackageId>
<!-- SNI runtime package -->
<RuntimeWinX64RuntimeNativeSystemDataSqlClientSniPackageVersion>4.4.0</RuntimeWinX64RuntimeNativeSystemDataSqlClientSniPackageVersion>
</PropertyGroup>
<!-- Full package version strings that are used in other parts of the build. -->
<!-- Tests/infrastructure dependency versions. -->
<PropertyGroup>
<CoreFxExpectedPrerelease>preview1-26122-01</CoreFxExpectedPrerelease>
<MicrosoftNETCorePlatformsPackageVersion>2.1.0-preview1-26122-01</MicrosoftNETCorePlatformsPackageVersion>
<MicrosoftNETCoreRuntimeCoreCLRPackageVersion>2.1.0-preview1-26122-04</MicrosoftNETCoreRuntimeCoreCLRPackageVersion>
<ProjectNTfsExpectedPrerelease>beta-26122-00</ProjectNTfsExpectedPrerelease>
<ProjectNTfsTestILCExpectedPrerelease>beta-26122-00</ProjectNTfsTestILCExpectedPrerelease>
<ProjectNTfsTestILCPackageVersion>1.0.0-beta-26122-00</ProjectNTfsTestILCPackageVersion>
<MicrosoftNETCoreDotNetHostPackageVersion>2.1.0-preview1-26121-02</MicrosoftNETCoreDotNetHostPackageVersion>
<MicrosoftNETCoreDotNetHostPolicyPackageVersion>2.1.0-preview1-26121-02</MicrosoftNETCoreDotNetHostPolicyPackageVersion>
<MicrosoftNETCoreAppPackageVersion>2.1.0-preview1-26121-02</MicrosoftNETCoreAppPackageVersion>
<MicrosoftDotNetPlatformAbstractionsPackageVersion>2.1.0-preview1-26121-02</MicrosoftDotNetPlatformAbstractionsPackageVersion>
<!-- CoreFX-built SNI identity package -->
<RuntimeNativeSystemDataSqlClientSniPackageVersion>4.4.0</RuntimeNativeSystemDataSqlClientSniPackageVersion>
<AppXRunnerVersion>1.0.3-prerelease-00921-01</AppXRunnerVersion>
<XunitPerfAnalysisPackageVersion>1.0.0-beta-build0007</XunitPerfAnalysisPackageVersion>
<XunitPerfAnalysisPackageVersion>1.0.0-beta-build0015</XunitPerfAnalysisPackageVersion>
<TraceEventPackageVersion>1.0.3-alpha-experimental</TraceEventPackageVersion>
<XunitNetcoreExtensionsVersion>1.0.1-prerelease-02118-01</XunitNetcoreExtensionsVersion>
<XunitNetcoreExtensionsVersion>2.1.0-prerelease-02419-02</XunitNetcoreExtensionsVersion>
</PropertyGroup>
<!-- Package versions used as toolsets -->
<PropertyGroup>
<FeedTasksPackage>Microsoft.DotNet.Build.Tasks.Feed</FeedTasksPackage>
<FeedTasksPackageVersion>2.1.0-prerelease-02419-02</FeedTasksPackageVersion>
</PropertyGroup>
<!-- Package dependency verification/auto-upgrade configuration. -->
@ -73,7 +86,7 @@
<CurrentRef>$(SniCurrentRef)</CurrentRef>
</RemoteDependencyBuildInfo>
<RemoteDependencyBuildInfo Include="Standard">
<BuildInfoPath>$(BaseDotNetBuildInfo)standard/$(DependencyBranch)</BuildInfoPath>
<BuildInfoPath>$(BaseDotNetBuildInfo)standard/release/2.0.0</BuildInfoPath>
<CurrentRef>$(StandardCurrentRef)</CurrentRef>
</RemoteDependencyBuildInfo>
<RemoteDependencyBuildInfo Include="ProjectNTfs">
@ -100,23 +113,18 @@
</XmlUpdateStep>
<XmlUpdateStep Include="CoreFx">
<Path>$(MSBuildThisFileFullPath)</Path>
<ElementName>PlatformPackageVersion</ElementName>
<ElementName>MicrosoftNETCorePlatformsPackageVersion</ElementName>
<PackageId>Microsoft.NETCore.Platforms</PackageId>
</XmlUpdateStep>
<XmlUpdateStep Include="CoreClr">
<Path>$(MSBuildThisFileFullPath)</Path>
<ElementName>CoreClrPackageVersion</ElementName>
<ElementName>MicrosoftNETCoreRuntimeCoreCLRPackageVersion</ElementName>
<PackageId>Microsoft.NETCore.Runtime.CoreCLR</PackageId>
</XmlUpdateStep>
<XmlUpdateStep Include="External">
<Path>$(MSBuildThisFileFullPath)</Path>
<ElementName>ExternalExpectedPrerelease</ElementName>
<BuildInfoName>External</BuildInfoName>
</XmlUpdateStep>
<XmlUpdateStep Include="Standard">
<Path>$(MSBuildThisFileFullPath)</Path>
<ElementName>NETStandardPackageVersion</ElementName>
<PackageId>$(NETStandardPackageId)</PackageId>
<ElementName>NETStandardLibraryPackageVersion</ElementName>
<PackageId>$(NETStandardLibraryPackageId)</PackageId>
</XmlUpdateStep>
<XmlUpdateStep Include="ProjectNTfs">
<Path>$(MSBuildThisFileFullPath)</Path>
@ -135,28 +143,54 @@
</XmlUpdateStep>
<XmlUpdateStep Include="Sni">
<Path>$(MSBuildThisFileFullPath)</Path>
<ElementName>SniPackageVersion</ElementName>
<ElementName>RuntimeWinX64RuntimeNativeSystemDataSqlClientSniPackageVersion</ElementName>
<PackageId>runtime.win-x64.runtime.native.System.Data.SqlClient.sni</PackageId>
</XmlUpdateStep>
<XmlUpdateStep Include="CoreSetup">
<Path>$(MSBuildThisFileFullPath)</Path>
<ElementName>MicrosoftNETCoreDotNetHostPackageVersion</ElementName>
<PackageId>Microsoft.NETCore.DotNetHost</PackageId>
</XmlUpdateStep>
<XmlUpdateStep Include="CoreSetup">
<Path>$(MSBuildThisFileFullPath)</Path>
<ElementName>MicrosoftNETCoreDotNetHostPolicyPackageVersion</ElementName>
<PackageId>Microsoft.NETCore.DotNetHostPolicy</PackageId>
</XmlUpdateStep>
<XmlUpdateStep Include="CoreSetup">
<Path>$(MSBuildThisFileFullPath)</Path>
<ElementName>MicrosoftNETCoreAppPackageVersion</ElementName>
<PackageId>Microsoft.NETCore.App</PackageId>
</XmlUpdateStep>
<XmlUpdateStep Include="CoreSetup">
<Path>$(MSBuildThisFileFullPath)</Path>
<ElementName>MicrosoftDotNetPlatformAbstractionsPackageVersion</ElementName>
<PackageId>Microsoft.DotNet.PlatformAbstractions</PackageId>
</XmlUpdateStep>
<UpdateStep Include="BuildTools">
<UpdaterType>File</UpdaterType>
<Path>$(MSBuildThisFileDirectory)BuildToolsVersion.txt</Path>
<PackageId>Microsoft.DotNet.BuildTools</PackageId>
</UpdateStep>
<UpdateStep Include="BuildTools">
<UpdaterType>File</UpdaterType>
<Path>$(MSBuildThisFileDirectory)tools-local/ILAsmVersion.txt</Path>
<PackageId>Microsoft.NETCore.ILAsm</PackageId>
</UpdateStep>
<XmlUpdateStep Include="BuildTools">
<Path>$(MSBuildThisFileFullPath)</Path>
<ElementName>XunitNetcoreExtensionsVersion</ElementName>
<PackageId>Microsoft.xunit.netcore.extensions</PackageId>
</XmlUpdateStep>
<XmlUpdateStep Include="BuildTools">
<Path>$(MSBuildThisFileFullPath)</Path>
<ElementName>FeedTasksPackageVersion</ElementName>
<PackageId>$(FeedTasksPackage)</PackageId>
</XmlUpdateStep>
</ItemGroup>
<PropertyGroup>
<XUnitPackageVersion>2.3.0-beta1-build3642</XUnitPackageVersion>
<CompatibilityShimsPackageVersion>2.0.0</CompatibilityShimsPackageVersion>
</PropertyGroup>
<!-- Set up dependencies on packages that aren't found in a BuildInfo. -->
@ -207,4 +241,17 @@
<!-- project.json files to update -->
<ProjectJsonFiles Include="$(MSBuildThisFileDirectory)external\**\optional.json" />
</ItemGroup>
<!-- Override isolated build dependency versions with versions from Repo API. -->
<Import Project="$(DotNetPackageVersionPropsPath)"
Condition="'$(DotNetPackageVersionPropsPath)' != ''" />
<!--
Map PackageVersion properties that don't match the Repo API naming conventions. This must be
defined after the DotNetPackageVersionPropsPath Import so overrides apply correctly.
-->
<PropertyGroup>
<!-- Backward compatibility for BuildTools usage. -->
<PlatformPackageVersion>$(MicrosoftNETCorePlatformsPackageVersion)</PlatformPackageVersion>
</PropertyGroup>
</Project>

View File

@ -11,7 +11,7 @@
<!-- Define vNext UAP Moniker -->
<PropertyGroup>
<UAPvNextVersion>10.0.15138</UAPvNextVersion>
<UAPvNextVersion>10.0.16300</UAPvNextVersion>
<UAPvNextTFMFull>UAP,Version=v$(UAPvNextVersion)</UAPvNextTFMFull>
<UAPvNextTFM>uap$(UAPvNextVersion)</UAPvNextTFM>
</PropertyGroup>
@ -23,6 +23,11 @@
<IsDotNetFrameworkProductAssembly>true</IsDotNetFrameworkProductAssembly>
</PropertyGroup>
<!-- Indicates this is not an officially supported release. Release branches should set this to false. -->
<PropertyGroup>
<IsPrerelease>false</IsPrerelease>
</PropertyGroup>
<!-- Common repo directories -->
<PropertyGroup>
<ProjectDir>$(MSBuildThisFileDirectory)</ProjectDir>
@ -41,6 +46,7 @@
<PackageOutputRoot Condition="'$(PackageOutputRoot)'==''">$(BinDir)packages/</PackageOutputRoot>
<!-- Input Directories -->
<PackagesDir>$(DotNetRestorePackagesPath)</PackagesDir>
<PackagesDir Condition="'$(PackagesDir)'==''">$(ProjectDir)packages/</PackagesDir>
<ToolsDir Condition="'$(ToolsDir)'==''">$(ProjectDir)Tools/</ToolsDir>
<IlasmToolPath>$(ToolsDir)ilasm/ilasm</IlasmToolPath>
@ -66,17 +72,19 @@
<Import Project="$(MSBuildThisFileDirectory)dependencies.props" />
<!-- list of nuget package sources passed to nuget restore -->
<ItemGroup Condition="'$(ExcludeInternetFeeds)' != 'true'">
<!-- Example to consume local CoreCLR package:
/p:OverridePackageSource=C:\coreclr\bin\Product\Windows_NT.x64.Debug\.nuget\pkg
-->
<DotnetSourceList Include="$(OverridePackageSource)" />
<!-- Need to escape double forward slash (%2F) or MSBuild will normalize to one slash on Unix. -->
<!-- Including buildtools to pull in TestSuite packages and repackaged xunit dependencies-->
<DotnetSourceList Include="https:%2F%2Fdotnet.myget.org/F/dotnet-buildtools/api/v3/index.json" />
<DotnetSourceList Include="https:%2F%2Fdotnet.myget.org/F/dotnet-core/api/v3/index.json" />
<DotnetSourceList Include="https:%2F%2Fapi.nuget.org/v3/index.json" />
</ItemGroup>
<!-- Example to consume local CoreCLR package:
/p:OverridePackageSource=C:\coreclr\bin\Product\Windows_NT.x64.Debug\.nuget\pkg
-->
<PropertyGroup>
<RestoreSources Condition="'$(DotNetBuildOffline)' != 'true'">
$(OverridePackageSource);
https://dotnetfeed.blob.core.windows.net/dotnet-core/index.json;
https://dotnet.myget.org/F/dotnet-buildtools/api/v3/index.json;
https://dotnet.myget.org/F/dotnet-core/api/v3/index.json;
https://api.nuget.org/v3/index.json;
$(RestoreSources)
</RestoreSources>
</PropertyGroup>
<PropertyGroup>
<!-- By default make all libraries to be AnyCPU but individual projects can override it if they need to -->
@ -145,7 +153,7 @@
<PackageRID Condition="'$(PackageRID)' == ''">$(_packageRID)</PackageRID>
<PackageRID Condition="'$(PackageRID)' == ''">$(RuntimeOS)-$(ArchGroup)</PackageRID>
</PropertyGroup>
<!-- Set some shortcuts for more terse conditions in project files -->
<PropertyGroup>
<TargetsNetCoreApp Condition="$(TargetGroup.StartsWith('netcoreapp'))">true</TargetsNetCoreApp>
@ -163,6 +171,12 @@
<BuildingUAPAOTVertical Condition="'$(BuildingUAPAOTVertical)' == '' AND ('$(_bc_TargetGroup)'=='uapaot' OR '$(BuildAllConfigurations)' == 'true')">true</BuildingUAPAOTVertical>
</PropertyGroup>
<!-- Set the kind of PDB to Portable and turn on SourceLink (fetching source from GitHub) -->
<PropertyGroup>
<DebugType Condition="'$(DebugType)' == ''">Portable</DebugType>
<UseSourceLink>true</UseSourceLink>
</PropertyGroup>
<!-- Set up Default symbol and optimization for Configuration -->
<Choose>
<When Condition="'$(ConfigurationGroup)'=='Debug'">
@ -209,7 +223,7 @@
<GenerateTargetFrameworkAttribute>false</GenerateTargetFrameworkAttribute>
<CopyNuGetImplementations>false</CopyNuGetImplementations>
</PropertyGroup>
<!-- Language configuration -->
<PropertyGroup>
<LangVersion>latest</LangVersion> <!-- default to allowing all language features -->
@ -217,6 +231,11 @@
<TreatWarningsAsErrors>true</TreatWarningsAsErrors>
</PropertyGroup>
<PropertyGroup Condition="'$(IsReferenceAssembly)' == 'true'">
<!-- disable warnings about unused fields -->
<NoWarn>$(NoWarn);0169;0649</NoWarn>
</PropertyGroup>
<!-- Set up some common paths -->
<PropertyGroup>
<CommonPath>$(SourceDir)Common\src</CommonPath>
@ -240,9 +259,9 @@
<TestPath Condition="'$(TestPath)' == ''">$(TestWorkingDir)$(MSBuildProjectName)/$(BuildConfiguration)/</TestPath>
<RefRootPath>$(BinDir)ref/</RefRootPath>
<BuildConfigurationRefPath>$(RefRootPath)$(_bc_TargetGroup)/</BuildConfigurationRefPath>
<BuildConfigurationRefPath Condition="$(_bc_TargetGroup.EndsWith('aot'))">$(RefRootPath)$(_bc_TargetGroup.TrimEnd('aot'))/</BuildConfigurationRefPath>
<BuildConfigurationRefPath Condition="$(_bc_TargetGroup.EndsWith('aot'))">$(RefRootPath)$(_bc_TargetGroup.TrimEnd('t').TrimEnd('o').TrimEnd('a'))/</BuildConfigurationRefPath>
<RefPath>$(RefRootPath)$(TargetGroup)/</RefPath>
<RefPath Condition="$(TargetGroup.EndsWith('aot'))">$(RefRootPath)$(TargetGroup.TrimEnd('aot'))/</RefPath>
<RefPath Condition="$(TargetGroup.EndsWith('aot'))">$(RefRootPath)$(TargetGroup.TrimEnd('t').TrimEnd('o').TrimEnd('a'))/</RefPath>
<NetStandardRefPath>$(RefRootPath)netstandard/</NetStandardRefPath>
<NetFxRefPath>$(RefRootPath)netfx/</NetFxRefPath>

View File

@ -9,7 +9,7 @@
<NugetRuntimeIdentifier>$(ToolRuntimeRID)</NugetRuntimeIdentifier>
<RidSpecificAssets>true</RidSpecificAssets>
<ILLinkTasksPackageId>illink.tasks</ILLinkTasksPackageId>
<ILLinkTasksPackageVersion>0.1.4-preview-981901</ILLinkTasksPackageVersion>
<ILLinkTasksPackageVersion>0.1.4-preview-1222833</ILLinkTasksPackageVersion>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="$(ILLinkTasksPackageId)">

View File

@ -7,15 +7,14 @@
<!-- Build for all configurations -->
<ItemGroup>
<Project Include="netcoreapp/netcoreapp.depproj" />
<Project Condition="'$(BuildAllConfigurations)' == 'true'" Include="netcoreapp/netcoreapp.depproj" />
<Project Include="netstandard/netstandard.depproj" />
<Project Include="netfx/netfx.depproj" />
<Project Include="runtime/runtime.depproj" />
<Project Include="test-runtime/XUnit.Runtime.depproj" />
<Project Include="test-runtime/XUnit.Runtime.depproj" Condition="'$(DotNetBuildFromSource)' != 'true'" />
<Project Include="harvestPackages/harvestPackages.depproj" />
<Project Include="portable\portable.depproj" />
<Project Include="ilasm/ilasm.depproj" />
<Project Include="docs/docs.depproj" />
<Project Include="portable/portable.depproj" />
<Project Include="docs/docs.depproj" Condition="'$(DotNetBuildFromSource)' != 'true'" />
<Project Condition="'$(ILLinkTrimAssembly)' != 'false'" Include="ILLink/ILLink.depproj" />
</ItemGroup>

View File

@ -1,26 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" DefaultTargets="Build">
<Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), dir.props))\dir.props" />
<PropertyGroup>
<NugetRuntimeIdentifier>$(ToolRuntimeRID)</NugetRuntimeIdentifier>
<OutputPath>$(ToolsDir)ilasm</OutputPath>
<EnableBinPlacing>false</EnableBinPlacing>
<RidSpecificAssets>true</RidSpecificAssets>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Microsoft.NETCore.Platforms">
<Version>$(PlatformPackageVersion)</Version>
</PackageReference>
<PackageReference Include="Microsoft.NETCore.Runtime.CoreCLR">
<Version>$(CoreClrPackageVersion)</Version>
</PackageReference>
<PackageReference Include="Microsoft.NETCore.ILAsm">
<Version>$(CoreClrPackageVersion)</Version>
</PackageReference>
</ItemGroup>
<Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), dir.targets))\dir.targets" />
<!-- Executables restored with .NET Core 2.0 do not have executable permission flags. https://github.com/NuGet/Home/issues/4424 -->
<Target Name="MakeIlasmExecutable" AfterTargets="CopyFilesToOutputDirectory" Condition="'$(RunningOnUnix)' == 'true'">
<Exec Command="chmod +x $(OutputPath)ilasm" />
</Target>
</Project>

View File

@ -11,7 +11,7 @@
<ItemGroup>
<PackageReference Include="NETStandard.Library">
<Version>$(NETStandardPackageVersion)</Version>
<Version>$(NETStandardLibraryPackageVersion)</Version>
</PackageReference>
</ItemGroup>
@ -53,13 +53,13 @@
<Target Name="AddNETStandardRefs" AfterTargets="ResolveReferences"
Condition="'$(_NETStandardTFMFolder)' != ''">
<PropertyGroup>
<_NETStandardRefFolder>$(PackagesDir)$(NETStandardPackageId.ToLower())\$(NETStandardPackageVersion)\build\$(_NETStandardTFMFolder)\ref</_NETStandardRefFolder>
<_NETStandardRefFolder>$(PackagesDir)$(NETStandardLibraryPackageId.ToLower())\$(NETStandardLibraryPackageVersion)\build\$(_NETStandardTFMFolder)\ref</_NETStandardRefFolder>
</PropertyGroup>
<ItemGroup>
<Reference Include="$(_NETStandardRefFolder)\*.dll">
<Private>False</Private>
<NuGetPackageId>$(NETStandardPackageId)</NuGetPackageId>
<NuGetPackageVersion>$(NETStandardPackageVersion)</NuGetPackageVersion>
<NuGetPackageId>$(NETStandardLibraryPackageId)</NuGetPackageId>
<NuGetPackageVersion>$(NETStandardLibraryPackageVersion)</NuGetPackageVersion>
</Reference>
</ItemGroup>
</Target>

View File

@ -26,22 +26,22 @@
<ItemGroup Condition="'$(TargetGroup)'!='uapaot'">
<PackageReference Include="Microsoft.NETCore.Platforms">
<Version>$(PlatformPackageVersion)</Version>
<Version>$(MicrosoftNETCorePlatformsPackageVersion)</Version>
</PackageReference>
<PackageReference Include="Microsoft.NETCore.Runtime.CoreCLR">
<Version>$(CoreClrPackageVersion)</Version>
<Version>$(MicrosoftNETCoreRuntimeCoreCLRPackageVersion)</Version>
</PackageReference>
<PackageReference Include="Microsoft.NETCore.TestHost">
<Version>$(CoreClrPackageVersion)</Version>
<Version>$(MicrosoftNETCoreRuntimeCoreCLRPackageVersion)</Version>
</PackageReference>
<PackageReference Include="runtime.native.System.Data.SqlClient.sni">
<Version>$(PackageVersion)-$(CoreFxExpectedPrerelease)</Version>
<Version>$(RuntimeNativeSystemDataSqlClientSniPackageVersion)</Version>
</PackageReference>
<PackageReference Include="Microsoft.NETCore.DotNetHost">
<Version>2.0.1-servicing-25615-03</Version>
<Version>$(MicrosoftNETCoreDotNetHostPackageVersion)</Version>
</PackageReference>
<PackageReference Include="Microsoft.NETCore.DotNetHostPolicy">
<Version>2.0.1-servicing-25615-03</Version>
<Version>$(MicrosoftNETCoreDotNetHostPolicyPackageVersion)</Version>
</PackageReference>
</ItemGroup>
@ -82,7 +82,9 @@
<ItemGroup>
<_CoreCLRSymbolPackagesToDownload Include="@(ReferenceCopyLocalPaths->'%(NuGetPackageId)')" Condition="$([System.String]::Copy('%(Identity)').EndsWith('System.Private.CoreLib.dll'))">
<Url>https://dotnet.myget.org/F/dotnet-core/symbols/%(NuGetPackageId)/%(NuGetPackageVersion)/</Url>
<!-- If there is an asset root URL set (for orchestrated build), then append symbols to that to grab the coreclr symbol location. The orchestrated build uses a flat package layout. -->
<Url Condition="'$(DotNetAssetRootUrl)'!=''">$(DotNetAssetRootUrl)symbols/%(NuGetPackageId).%(NuGetPackageVersion).symbols.nupkg</Url>
<Url Condition="'$(DotNetAssetRootUrl)'==''">https://dotnet.myget.org/F/dotnet-core/symbols/%(NuGetPackageId)/%(NuGetPackageVersion)/</Url>
<DestinationFile>%(NuGetPackageId).%(NuGetPackageVersion).symbols.nupkg.zip</DestinationFile>
<UnzipDestinationDir>$(SymbolPackagesDir)/%(NuGetPackageId).%(NuGetPackageVersion)</UnzipDestinationDir>
</_CoreCLRSymbolPackagesToDownload>

View File

@ -50,6 +50,9 @@
<PackageReference Include="Microsoft.3rdpartytools.MarkdownLog">
<Version>0.10.0-alpha-experimental</Version>
</PackageReference>
<PackageReference Condition="'$(TargetGroup)' != 'uapaot'" Include="Microsoft.DotNet.PlatformAbstractions">
<Version>$(MicrosoftDotNetPlatformAbstractionsPackageVersion)</Version>
</PackageReference>
<PackageReference Include="CommandLineParser">
<Version>2.1.1-beta</Version>
</PackageReference>
@ -66,7 +69,7 @@
<Version>3.0.1</Version>
</PackageReference>
<PackageReference Include="System.IO.Compression.TestData">
<Version>1.0.5-prerelease</Version>
<Version>1.0.6-prerelease</Version>
</PackageReference>
<PackageReference Include="System.IO.Packaging.TestData">
<Version>1.0.0-prerelease</Version>
@ -95,6 +98,7 @@
<PackageToInclude Include="xunit.runner.utility"/>
<PackageToInclude Include="Microsoft.xunit.netcore.extensions"/>
<PackageToInclude Include="Newtonsoft.Json"/>
<PackageToInclude Condition="'$(TargetGroup)' != 'uapaot'" Include="Microsoft.DotNet.PlatformAbstractions" />
<PackageToInclude Include="$(XUnitRunnerPackageId)" />
</ItemGroup>

View File

@ -3,9 +3,9 @@
"net45": {
"dependencies": {
"Microsoft.DotNet.IBCMerge": "4.6.0-alpha-00001",
"TestILC.amd64ret": "1.0.0-beta-25813-00",
"TestILC.armret": "1.0.0-beta-25813-00",
"TestILC.x86ret": "1.0.0-beta-25813-00"
"TestILC.amd64ret": "1.0.0-beta-26122-00",
"TestILC.armret": "1.0.0-beta-26122-00",
"TestILC.x86ret": "1.0.0-beta-26122-00"
}
}
}

View File

@ -71,6 +71,8 @@
<ILLinkArgs>$(ILLinkArgs) -v true</ILLinkArgs>
<!-- reflection heuristics to apply -->
<ILLinkArgs>$(ILLinkArgs) -h LdtokenTypeMethods,InstanceConstructors</ILLinkArgs>
<!-- add a linker step to clear initlocals flag on all assemblies before the output step -->
<ILLinkArgs Condition="'$(ILLinkClearInitLocals)' == 'true'">$(ILLinkArgs) -s ILLink.CustomSteps.ClearInitLocalsStep,ILLink.CustomSteps:OutputStep</ILLinkArgs>
</PropertyGroup>
<MakeDir Directories="$(ILLinkTrimInputPath)" />

View File

@ -10,7 +10,8 @@ if [%BUILDTOOLS_SOURCE%]==[] set BUILDTOOLS_SOURCE=https://dotnet.myget.org/F/do
set /P BUILDTOOLS_VERSION=< "%~dp0BuildToolsVersion.txt"
set BUILD_TOOLS_PATH=%PACKAGES_DIR%Microsoft.DotNet.BuildTools\%BUILDTOOLS_VERSION%\lib\
set INIT_TOOLS_RESTORE_PROJECT=%~dp0init-tools.msbuild
set BUILD_TOOLS_SEMAPHORE=%TOOLRUNTIME_DIR%\%BUILDTOOLS_VERSION%\init-tools.completed
set BUILD_TOOLS_SEMAPHORE_DIR=%TOOLRUNTIME_DIR%\%BUILDTOOLS_VERSION%
set BUILD_TOOLS_SEMAPHORE=%BUILD_TOOLS_SEMAPHORE_DIR%\init-tools.completed
:: if force option is specified then clean the tool runtime and build tools package directory to force it to get recreated
if [%1]==[force] (
@ -26,6 +27,22 @@ if exist "%BUILD_TOOLS_SEMAPHORE%" (
if exist "%TOOLRUNTIME_DIR%" rmdir /S /Q "%TOOLRUNTIME_DIR%"
if NOT exist "%BUILD_TOOLS_SEMAPHORE_DIR%" mkdir "%BUILD_TOOLS_SEMAPHORE_DIR%"
if exist "%DotNetBuildToolsDir%" (
echo Using tools from '%DotNetBuildToolsDir%'.
mklink /j "%TOOLRUNTIME_DIR%" "%DotNetBuildToolsDir%"
if not exist "%DOTNET_CMD%" (
echo ERROR: Ensure that '%DotNetBuildToolsDir%' contains the .NET Core SDK at '%DOTNET_PATH%'
exit /b 1
)
echo Done initializing tools.
echo Using tools from '%DotNetBuildToolsDir%'. > "%BUILD_TOOLS_SEMAPHORE%"
exit /b 0
)
echo Running %0 > "%INIT_TOOLS_LOG%"
set /p DOTNET_VERSION=< "%~dp0DotnetCLIVersion.txt"
@ -56,6 +73,9 @@ if NOT exist "%BUILD_TOOLS_PATH%init-tools.cmd" (
:afterbuildtoolsrestore
:: Ask init-tools to also restore ILAsm
set /p ILASMCOMPILER_VERSION=< "%~dp0tools-local\ILAsmVersion.txt"
echo Initializing BuildTools...
echo Running: "%BUILD_TOOLS_PATH%init-tools.cmd" "%~dp0" "%DOTNET_CMD%" "%TOOLRUNTIME_DIR%" >> "%INIT_TOOLS_LOG%"
call "%BUILD_TOOLS_PATH%init-tools.cmd" "%~dp0" "%DOTNET_CMD%" "%TOOLRUNTIME_DIR%" >> "%INIT_TOOLS_LOG%"

View File

@ -5,7 +5,9 @@
<DisableImplicitFrameworkReferences>true</DisableImplicitFrameworkReferences>
<BaseIntermediateOutputPath>$(MSBuildThisFileDirectory)Tools/$(BuildToolsPackageVersion)</BaseIntermediateOutputPath>
</PropertyGroup>
<Import Project="$(MSBuildThisFileDirectory)dependencies.props" />
<ItemGroup>
<PackageReference Include="Microsoft.DotNet.BuildTools" Version="$(BuildToolsPackageVersion)" />
<PackageReference Include="$(FeedTasksPackage)" Version="$(FeedTasksPackageVersion)" />
</ItemGroup>
</Project>

View File

@ -8,147 +8,175 @@ __DOTNET_PATH=$__TOOLRUNTIME_DIR/dotnetcli
__DOTNET_CMD=$__DOTNET_PATH/dotnet
if [ -z "$__BUILDTOOLS_SOURCE" ]; then __BUILDTOOLS_SOURCE=https://dotnet.myget.org/F/dotnet-buildtools/api/v3/index.json; fi
export __BUILDTOOLS_USE_CSPROJ=true
__BUILD_TOOLS_PACKAGE_VERSION=$(cat $__scriptpath/BuildToolsVersion.txt)
__DOTNET_TOOLS_VERSION=$(cat $__scriptpath/DotnetCLIVersion.txt)
__BUILD_TOOLS_PACKAGE_VERSION=$(cat $__scriptpath/BuildToolsVersion.txt | sed 's/\r$//') # remove CR if mounted repo on Windows drive
__DOTNET_TOOLS_VERSION=$(cat $__scriptpath/DotnetCLIVersion.txt | sed 's/\r$//') # remove CR if mounted repo on Windows drive
__ILASM_VERSION=$(cat $__scriptpath/tools-local/ILAsmVersion.txt | sed 's/\r$//') # remove CR if mounted repo on Windows drive
__BUILD_TOOLS_PATH=$__PACKAGES_DIR/microsoft.dotnet.buildtools/$__BUILD_TOOLS_PACKAGE_VERSION/lib
__INIT_TOOLS_RESTORE_PROJECT=$__scriptpath/init-tools.msbuild
__INIT_TOOLS_DONE_MARKER_DIR=$__TOOLRUNTIME_DIR/$__BUILD_TOOLS_PACKAGE_VERSION
__INIT_TOOLS_DONE_MARKER=$__INIT_TOOLS_DONE_MARKER_DIR/done
__BUILD_TOOLS_SEMAPHORE=$__TOOLRUNTIME_DIR/$__BUILD_TOOLS_PACKAGE_VERSION/init-tools.complete
if [ -z "$__DOTNET_PKG" ]; then
if [ "$(uname -m | grep "i[3456]86")" = "i686" ]; then
echo "Warning: build not supported on 32 bit Unix"
if [ -e $__BUILD_TOOLS_SEMAPHORE ]; then
echo "Tools are already initialized"
return #return instead of exit because this script is inlined in other scripts which we don't want to exit
fi
if [ -e $__TOOLRUNTIME_DIR ]; then rm -rf -- $__TOOLRUNTIME_DIR; fi
if [ -d "$DotNetBuildToolsDir" ]; then
echo "Using tools from '$DotNetBuildToolsDir'."
ln -s "$DotNetBuildToolsDir" "$__TOOLRUNTIME_DIR"
if [ ! -e "$__DOTNET_CMD" ]; then
echo "ERROR: Ensure that $DotNetBuildToolsDir contains the .NET Core SDK at $__DOTNET_PATH"
exit 1
fi
__PKG_ARCH=x64
OSName=$(uname -s)
case $OSName in
Darwin)
OS=OSX
__PKG_RID=osx
ulimit -n 2048
# Format x.y.z as single integer with three digits for each part
VERSION=`sw_vers -productVersion| sed -e 's/\./ /g' | xargs printf "%03d%03d%03d"`
if [ "$VERSION" -lt 010012000 ]; then
echo error: macOS version `sw_vers -productVersion` is too old. 10.12 is needed as minimum.
exit 1
fi
;;
Linux)
__PKG_RID=linux
OS=Linux
if [ -e /etc/os-release ]; then
source /etc/os-release
if [[ $ID == "alpine" ]]; then
# remove the last version digit
VERSION_ID=${VERSION_ID%.*}
__PKG_RID=alpine.$VERSION_ID
fi
elif [ -e /etc/redhat-release ]; then
redhatRelease=$(</etc/redhat-release)
if [[ $redhatRelease == "CentOS release 6."* || $redhatRelease == "Red Hat Enterprise Linux Server release 6."* ]]; then
__PKG_RID=rhel.6
fi
fi
;;
*)
echo "Unsupported OS '$OSName' detected. Downloading linux-$__PKG_ARCH tools."
OS=Linux
__PKG_RID=linux
;;
esac
__DOTNET_PKG=dotnet-sdk-${__DOTNET_TOOLS_VERSION}-$__PKG_RID-$__PKG_ARCH
echo "Done initializing tools."
mkdir -p "$(dirname "$__BUILD_TOOLS_SEMAPHORE")" && touch $__BUILD_TOOLS_SEMAPHORE
return #return instead of exit because this script is inlined in other scripts which we don't want to exit
fi
echo "Running: $__scriptpath/init-tools.sh" > $__init_tools_log
display_error_message()
{
echo "Please check the detailed log that follows." 1>&2
cat "$__init_tools_log" 1>&2
}
if [ ! -e $__INIT_TOOLS_DONE_MARKER ]; then
__PATCH_CLI_NUGET_FRAMEWORKS=0
if [ -e $__TOOLRUNTIME_DIR ]; then rm -rf -- $__TOOLRUNTIME_DIR; fi
echo "Running: $__scriptpath/init-tools.sh" > $__init_tools_log
if [ ! -e $__DOTNET_PATH ]; then
mkdir -p "$__DOTNET_PATH"
if [ -n "$DOTNET_TOOLSET_DIR" ] && [ -d "$DOTNET_TOOLSET_DIR/$__DOTNET_TOOLS_VERSION" ]; then
echo "Copying $DOTNET_TOOLSET_DIR/$__DOTNET_TOOLS_VERSION to $__DOTNET_PATH" >> $__init_tools_log
cp -r $DOTNET_TOOLSET_DIR/$__DOTNET_TOOLS_VERSION/* $__DOTNET_PATH
elif [ -n "$DOTNET_TOOL_DIR" ] && [ -d "$DOTNET_TOOL_DIR" ]; then
echo "Copying $DOTNET_TOOL_DIR to $__DOTNET_PATH" >> $__init_tools_log
cp -r $DOTNET_TOOL_DIR/* $__DOTNET_PATH
# Executes a command and retries if it fails.
execute_with_retry() {
local count=0
local retries=${retries:-5}
local waitFactor=${waitFactor:-6}
until "$@"; do
local exit=$?
count=$(( $count + 1 ))
if [ $count -lt $retries ]; then
local wait=$(( waitFactor ** (( count - 1 )) ))
echo "Retry $count/$retries exited $exit, retrying in $wait seconds..."
sleep $wait
else
echo "Installing dotnet cli..."
__DOTNET_LOCATION="https://dotnetcli.azureedge.net/dotnet/Sdk/${__DOTNET_TOOLS_VERSION}/${__DOTNET_PKG}.tar.gz"
# curl has HTTPS CA trust-issues less often than wget, so lets try that first.
echo "Installing '${__DOTNET_LOCATION}' to '$__DOTNET_PATH/dotnet.tar'" >> $__init_tools_log
if command -v curl > /dev/null; then
curl --retry 10 -sSL --create-dirs -o $__DOTNET_PATH/dotnet.tar ${__DOTNET_LOCATION}
else
wget -q -O $__DOTNET_PATH/dotnet.tar ${__DOTNET_LOCATION}
fi
cd $__DOTNET_PATH
tar -xf $__DOTNET_PATH/dotnet.tar
cd $__scriptpath
__PATCH_CLI_NUGET_FRAMEWORKS=1
say_err "Retry $count/$retries exited $exit, no more retries left."
return $exit
fi
done
return 0
}
if [ ! -e $__DOTNET_PATH ]; then
if [ -z "$__DOTNET_PKG" ]; then
if [ "$(uname -m | grep "i[3456]86")" = "i686" ]; then
echo "Warning: build not supported on 32 bit Unix"
fi
__PKG_ARCH=x64
OSName=$(uname -s)
case $OSName in
Darwin)
OS=OSX
__PKG_RID=osx
ulimit -n 2048
# Format x.y.z as single integer with three digits for each part
VERSION=`sw_vers -productVersion| sed -e 's/\./ /g' | xargs printf "%03d%03d%03d"`
if [ "$VERSION" -lt 010012000 ]; then
echo error: macOS version `sw_vers -productVersion` is too old. 10.12 is needed as minimum.
exit 1
fi
;;
Linux)
__PKG_RID=linux
OS=Linux
if [ -e /etc/os-release ]; then
source /etc/os-release
if [[ $ID == "alpine" ]]; then
# remove the last version digit
VERSION_ID=${VERSION_ID%.*}
__PKG_RID=alpine.$VERSION_ID
fi
elif [ -e /etc/redhat-release ]; then
redhatRelease=$(</etc/redhat-release)
if [[ $redhatRelease == "CentOS release 6."* || $redhatRelease == "Red Hat Enterprise Linux Server release 6."* ]]; then
__PKG_RID=rhel.6
fi
fi
;;
*)
echo "Unsupported OS '$OSName' detected. Downloading linux-$__PKG_ARCH tools."
OS=Linux
__PKG_RID=linux
;;
esac
__DOTNET_PKG=dotnet-sdk-${__DOTNET_TOOLS_VERSION}-$__PKG_RID-$__PKG_ARCH
fi
mkdir -p "$__DOTNET_PATH"
echo "Installing dotnet cli..."
__DOTNET_LOCATION="https://dotnetcli.azureedge.net/dotnet/Sdk/${__DOTNET_TOOLS_VERSION}/${__DOTNET_PKG}.tar.gz"
if [ -n "$BUILD_TOOLS_TOOLSET_DIR" ] && [ -d "$BUILD_TOOLS_TOOLSET_DIR/$__BUILD_TOOLS_PACKAGE_VERSION" ]; then
echo "Copying $BUILD_TOOLS_TOOLSET_DIR/$__BUILD_TOOLS_PACKAGE_VERSION to $__TOOLRUNTIME_DIR" >> $__init_tools_log
cp -r $BUILD_TOOLS_TOOLSET_DIR/$__BUILD_TOOLS_PACKAGE_VERSION/* $__TOOLRUNTIME_DIR
elif [ -n "$BUILD_TOOLS_TOOL_DIR" ] && [ -d "$BUILD_TOOLS_TOOL_DIR" ]; then
echo "Copying $BUILD_TOOLS_TOOL_DIR to $__TOOLRUNTIME_DIR" >> $__init_tools_log
cp -r $BUILD_TOOLS_TOOL_DIR/* $__TOOLRUNTIME_DIR
else
if [ ! -e $__BUILD_TOOLS_PATH ]; then
echo "Restoring BuildTools version $__BUILD_TOOLS_PACKAGE_VERSION..."
echo "Running: $__DOTNET_CMD restore \"$__INIT_TOOLS_RESTORE_PROJECT\" --no-cache --packages $__PACKAGES_DIR --source $__BUILDTOOLS_SOURCE /p:BuildToolsPackageVersion=$__BUILD_TOOLS_PACKAGE_VERSION" >> $__init_tools_log
$__DOTNET_CMD restore "$__INIT_TOOLS_RESTORE_PROJECT" --no-cache --packages $__PACKAGES_DIR --source $__BUILDTOOLS_SOURCE /p:BuildToolsPackageVersion=$__BUILD_TOOLS_PACKAGE_VERSION >> $__init_tools_log
if [ ! -e "$__BUILD_TOOLS_PATH/init-tools.sh" ]; then
echo "ERROR: Could not restore build tools correctly." 1>&2
display_error_message
fi
install_dotnet_cli() {
echo "Installing '${__DOTNET_LOCATION}' to '$__DOTNET_PATH/dotnet.tar'" >> "$__init_tools_log"
rm -rf -- "$__DOTNET_PATH/*"
# curl has HTTPS CA trust-issues less often than wget, so lets try that first.
if command -v curl > /dev/null; then
curl --retry 10 -sSL --create-dirs -o $__DOTNET_PATH/dotnet.tar ${__DOTNET_LOCATION}
else
wget -q -O $__DOTNET_PATH/dotnet.tar ${__DOTNET_LOCATION}
fi
cd $__DOTNET_PATH
tar -xf $__DOTNET_PATH/dotnet.tar
}
execute_with_retry install_dotnet_cli >> "$__init_tools_log" 2>&1
echo "Initializing BuildTools..."
echo "Running: $__BUILD_TOOLS_PATH/init-tools.sh $__scriptpath $__DOTNET_CMD $__TOOLRUNTIME_DIR" >> $__init_tools_log
# Executables restored with .NET Core 2.0 do not have executable permission flags. https://github.com/NuGet/Home/issues/4424
chmod +x $__BUILD_TOOLS_PATH/init-tools.sh
$__BUILD_TOOLS_PATH/init-tools.sh $__scriptpath $__DOTNET_CMD $__TOOLRUNTIME_DIR >> $__init_tools_log
if [ "$?" != "0" ]; then
echo "ERROR: An error occurred when trying to initialize the tools." 1>&2
display_error_message
exit 1
fi
fi
echo "Making all .sh files executable under Tools."
# Executables restored with .NET Core 2.0 do not have executable permission flags. https://github.com/NuGet/Home/issues/4424
ls $__scriptpath/Tools/*.sh | xargs chmod +x
ls $__scriptpath/Tools/scripts/docker/*.sh | xargs chmod +x
Tools/crossgen.sh $__scriptpath/Tools
mkdir -p $__INIT_TOOLS_DONE_MARKER_DIR
touch $__INIT_TOOLS_DONE_MARKER
echo "Done initializing tools."
else
echo "Tools are already initialized"
cd $__scriptpath
fi
if [ ! -e $__BUILD_TOOLS_PATH ]; then
echo "Restoring BuildTools version $__BUILD_TOOLS_PACKAGE_VERSION..."
echo "Running: $__DOTNET_CMD restore \"$__INIT_TOOLS_RESTORE_PROJECT\" --no-cache --packages $__PACKAGES_DIR --source $__BUILDTOOLS_SOURCE /p:BuildToolsPackageVersion=$__BUILD_TOOLS_PACKAGE_VERSION" >> $__init_tools_log
$__DOTNET_CMD restore "$__INIT_TOOLS_RESTORE_PROJECT" --no-cache --packages $__PACKAGES_DIR --source $__BUILDTOOLS_SOURCE /p:BuildToolsPackageVersion=$__BUILD_TOOLS_PACKAGE_VERSION >> $__init_tools_log
if [ ! -e "$__BUILD_TOOLS_PATH/init-tools.sh" ]; then
echo "ERROR: Could not restore build tools correctly." 1>&2
display_error_message
fi
fi
if [ -z "$__ILASM_RID" ]; then
__ILASM_RID=$__PKG_RID-$__PKG_ARCH
fi
echo "Using RID $__ILASM_RID for BuildTools native tools"
export ILASMCOMPILER_VERSION=$__ILASM_VERSION
export NATIVE_TOOLS_RID=$__ILASM_RID
echo "Initializing BuildTools..."
echo "Running: $__BUILD_TOOLS_PATH/init-tools.sh $__scriptpath $__DOTNET_CMD $__TOOLRUNTIME_DIR" >> $__init_tools_log
# Executables restored with .NET Core 2.0 do not have executable permission flags. https://github.com/NuGet/Home/issues/4424
chmod +x $__BUILD_TOOLS_PATH/init-tools.sh
$__BUILD_TOOLS_PATH/init-tools.sh $__scriptpath $__DOTNET_CMD $__TOOLRUNTIME_DIR >> $__init_tools_log
if [ "$?" != "0" ]; then
echo "ERROR: An error occurred when trying to initialize the tools." 1>&2
display_error_message
exit 1
fi
echo "Making all .sh files executable under Tools."
# Executables restored with .NET Core 2.0 do not have executable permission flags. https://github.com/NuGet/Home/issues/4424
ls $__scriptpath/Tools/*.sh | xargs chmod +x
ls $__scriptpath/Tools/scripts/docker/*.sh | xargs chmod +x
Tools/crossgen.sh $__scriptpath/Tools
mkdir -p "$(dirname "$__BUILD_TOOLS_SEMAPHORE")" && touch $__BUILD_TOOLS_SEMAPHORE
echo "Done initializing tools."

View File

@ -49,7 +49,7 @@ def osShortName = ['Windows 10': 'win10',
// **************************
[true, false].each { isPR ->
['Release'].each { configurationGroup ->
['Windows_NT', 'Ubuntu14.04'].each { os ->
['Windows_NT', 'Ubuntu16.04'].each { os ->
def osGroup = osGroupMap[os]
def newJobName = "perf_${os.toLowerCase()}_${configurationGroup.toLowerCase()}"
@ -58,7 +58,7 @@ def osShortName = ['Windows 10': 'win10',
label('windows_server_2016_clr_perf')
}
else {
label('linux_clr_perf')
label('ubuntu_1604_clr_perf')
}
wrappers {
@ -103,7 +103,7 @@ def osShortName = ['Windows 10': 'win10',
steps {
//We need to specify the max cpu count to be one as we do not want to be executing performance tests in parallel
shell("./build.sh -release")
shell("sudo find . -type f -name dotnet | xargs chmod +x")
shell("find . -type f -name dotnet | xargs chmod u+x")
shell("curl \"http://benchviewtestfeed.azurewebsites.net/nuget/FindPackagesById()?id='Microsoft.BenchView.JSONFormat'\" | grep \"content type\" | sed \"\$ s/.*src=\\\"\\([^\\\"]*\\)\\\".*/\\1/;tx;d;:x\" | xargs curl -o benchview.zip")
shell("unzip -q -o benchview.zip -d \"\${WORKSPACE}/Tools/Microsoft.BenchView.JSONFormat\"")
@ -113,7 +113,7 @@ def osShortName = ['Windows 10': 'win10',
"python3.5 \"\${WORKSPACE}/Tools/Microsoft.BenchView.JSONFormat/tools/submission-metadata.py\" --name " + "\"" + benchViewName + "\"" + " --user-email " + "\"dotnet-bot@microsoft.com\"\n" +
"python3.5 \"\${WORKSPACE}/Tools/Microsoft.BenchView.JSONFormat/tools/build.py\" git --branch \$GIT_BRANCH_WITHOUT_ORIGIN --type " + runType)
shell("python3.5 \"\${WORKSPACE}/Tools/Microsoft.BenchView.JSONFormat/tools/machinedata.py\"")
shell("sudo -E bash ./build-managed.sh -release -tests -- /p:Performance=true /p:TargetOS=${osGroup} /m:1 /p:LogToBenchview=true /p:BenchviewRunType=${runType}")
shell("bash ./build-managed.sh -release -tests -- /p:Performance=true /p:TargetOS=${osGroup} /m:1 /p:LogToBenchview=true /p:BenchviewRunType=${runType}")
}
}
}

View File

@ -1,12 +1,15 @@
{
"alpine": [
"alpine",
"unix",
"any",
"base"
],
"alpine-corert": [
"alpine-corert",
"alpine",
"unix-corert",
"unix",
"corert",
"any",
"base"
@ -14,6 +17,8 @@
"alpine-x64": [
"alpine-x64",
"alpine",
"unix-x64",
"unix",
"any",
"base"
],
@ -21,7 +26,11 @@
"alpine-x64-corert",
"alpine-corert",
"alpine-x64",
"unix-x64-corert",
"alpine",
"unix-corert",
"unix-x64",
"unix",
"corert",
"any",
"base"
@ -29,6 +38,7 @@
"alpine.3.6": [
"alpine.3.6",
"alpine",
"unix",
"any",
"base"
],
@ -37,6 +47,8 @@
"alpine.3.6",
"alpine-corert",
"alpine",
"unix-corert",
"unix",
"corert",
"any",
"base"
@ -46,6 +58,8 @@
"alpine.3.6",
"alpine-x64",
"alpine",
"unix-x64",
"unix",
"any",
"base"
],
@ -58,6 +72,10 @@
"alpine-corert",
"alpine-x64",
"alpine",
"unix-x64-corert",
"unix-corert",
"unix-x64",
"unix",
"corert",
"any",
"base"

View File

@ -2,24 +2,26 @@
"runtimes": {
"alpine": {
"#import": [
"any"
"unix"
]
},
"alpine-corert": {
"#import": [
"alpine",
"corert"
"unix-corert"
]
},
"alpine-x64": {
"#import": [
"alpine"
"alpine",
"unix-x64"
]
},
"alpine-x64-corert": {
"#import": [
"alpine-corert",
"alpine-x64"
"alpine-x64",
"unix-x64-corert"
]
},
"alpine.3.6": {

View File

@ -11,7 +11,7 @@
</RuntimeGroup>
<RuntimeGroup Include="alpine">
<Parent>any</Parent>
<Parent>unix</Parent>
<Architectures>x64</Architectures>
<Versions>3.6</Versions>
</RuntimeGroup>

View File

@ -1,57 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="14.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), dir.props))\dir.props" />
<PropertyGroup>
<PackageVersion>2.1.0</PackageVersion>
</PropertyGroup>
<ItemDefinitionGroup>
<LibraryPackage>
<Version>4.4.0</Version>
</LibraryPackage>
<PrereleaseLibraryPackage>
<Version>4.5.0</Version>
</PrereleaseLibraryPackage>
</ItemDefinitionGroup>
<ItemGroup>
<PackageIndex Include="$(MSBuildThisFileDirectory)externalIndex.json" />
</ItemGroup>
<ItemGroup>
<LibraryPackage Include="Microsoft.Win32.Registry" />
<LibraryPackage Include="Microsoft.Win32.Registry.AccessControl" />
<LibraryPackage Include="System.CodeDom" />
<LibraryPackage Include="System.Configuration.ConfigurationManager" />
<LibraryPackage Include="System.Data.SqlClient" />
<LibraryPackage Include="System.IO.FileSystem.AccessControl" />
<LibraryPackage Include="System.IO.Packaging" />
<LibraryPackage Include="System.IO.Pipes.AccessControl" />
<LibraryPackage Include="System.IO.Ports" />
<LibraryPackage Include="System.Security.AccessControl" />
<LibraryPackage Include="System.Security.Cryptography.Cng" />
<LibraryPackage Include="System.Security.Cryptography.Pkcs" />
<LibraryPackage Include="System.Security.Cryptography.ProtectedData" />
<LibraryPackage Include="System.Security.Cryptography.Xml" />
<LibraryPackage Include="System.Security.Permissions" />
<LibraryPackage Include="System.Security.Principal.Windows" />
<LibraryPackage Include="System.ServiceProcess.ServiceController" />
<LibraryPackage Include="System.Text.Encoding.CodePages" />
<LibraryPackage Include="System.Threading.AccessControl" />
<LibraryPackage Include="System.ServiceModel.Primitives" />
<LibraryPackage Include="System.ServiceModel.Duplex" />
<LibraryPackage Include="System.ServiceModel.Http" />
<LibraryPackage Include="System.ServiceModel.NetTcp" />
<LibraryPackage Include="System.ServiceModel.Security" />
<PrereleaseLibraryPackage Include="System.Data.Odbc" />
<PrereleaseLibraryPackage Include="System.Drawing.Common" />
</ItemGroup>
<ItemGroup>
<Dependency Include="@(LibraryPackage)" />
<Dependency Include="@(PrereleaseLibraryPackage)" />
</ItemGroup>
<Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), dir.targets))\dir.targets" />
</Project>

View File

@ -8,6 +8,9 @@
<OfficialBuildRID Include="win10-arm">
<Platform>arm</Platform>
</OfficialBuildRID>
<OfficialBuildRID Include="win10-arm64">
<Platform>arm64</Platform>
</OfficialBuildRID>
<OfficialBuildRID Include="win10-x86-aot">
<Platform>x86</Platform>
</OfficialBuildRID>
@ -15,5 +18,8 @@
<OfficialBuildRID Include="win10-arm-aot">
<Platform>arm</Platform>
</OfficialBuildRID>
<OfficialBuildRID Include="win10-arm64-aot">
<Platform>arm64</Platform>
</OfficialBuildRID>
</ItemGroup>
</Project>

View File

@ -36,10 +36,10 @@
<FrameworkLayout Include="$(UAPPackageRefPath)">
<TargetFramework>$(UAPvNextTFM)</TargetFramework>
</FrameworkLayout>
<FrameworkLayout Include="$(PackagesDir)$(NETStandardPackageId)\$(NETStandardPackageVersion)\build\netstandard2.0\ref">
<FrameworkLayout Include="$(PackagesDir)$(NETStandardLibraryPackageId)\$(NETStandardLibraryPackageVersion)\build\netstandard2.0\ref">
<TargetFramework>netstandard2.0</TargetFramework>
</FrameworkLayout>
<FrameworkLayout Include="$(PackagesDir)$(NETStandardPackageId)\$(NETStandardPackageVersion)\build\net461\ref">
<FrameworkLayout Include="$(PackagesDir)$(NETStandardLibraryPackageId)\$(NETStandardLibraryPackageVersion)\build\net461\ref">
<TargetFramework>net461</TargetFramework>
</FrameworkLayout>
</ItemGroup>

View File

@ -1 +1 @@
f3f128e745dd276fe999ccec1dd9d48f056ecb9f
28e475f5bd0c3d7de2ba5852f5a4ed767748c8e4

View File

@ -8,5 +8,4 @@
</ItemGroup>
<Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), dir.traversal.targets))\dir.traversal.targets" />
</Project>

View File

@ -0,0 +1,45 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="14.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), dir.props))\dir.props" />
<PropertyGroup>
<PackageVersion>$(CompatibilityShimsPackageVersion)</PackageVersion>
<_ShimsLocationPath>$(BaseIntermediateOutputPath)shims/netcoreapp/facades/</_ShimsLocationPath>
</PropertyGroup>
<ItemGroup>
<ShimsToInclude Include="mscorlib.dll" />
<ShimsToInclude Include="System.dll" />
<ShimsToInclude Include="System.Configuration.dll" />
<ShimsToInclude Include="System.Core.dll" />
<ShimsToInclude Include="System.Data.dll" />
<ShimsToInclude Include="System.Drawing.dll" />
<ShimsToInclude Include="System.Net.dll" />
<ShimsToInclude Include="System.Security.dll" />
<ShimsToInclude Include="System.ServiceModel.Web.dll" />
<ShimsToInclude Include="System.ServiceProcess.dll" />
<ShimsToInclude Include="System.Transactions.dll" />
<ShimsToInclude Include="WindowsBase.dll" />
</ItemGroup>
<Target Name="AddShimsToPackage"
BeforeTargets="GetPackageFiles">
<Error Text="Required facade: %(ShimsToInclude.Identity) was not found in $(_ShimsLocationPath)." Condition="!Exists('@(ShimsToInclude->'$(_ShimsLocationPath)%(Identity)')')" />
<ItemGroup>
<File Include="@(ShimsToInclude->'$(_ShimsLocationPath)%(Identity)')">
<TargetPath>/lib/netcoreapp2.0</TargetPath>
<SkipPackageFileCheck>true</SkipPackageFileCheck>
</File>
<!-- Include placeholder to be netstandard2.0 compatible -->
<File Include="$(PlaceHolderFile)">
<TargetPath>/lib/netstandard2.0</TargetPath>
</File>
</ItemGroup>
<Message Importance="Low" Text="Added: %(ShimsToInclude.Identity) to package." />
</Target>
<Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), dir.targets))\dir.targets" />
</Project>

View File

@ -0,0 +1,11 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="14.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), dir.props))\dir.props" />
<!-- only build during the AllConfigurations leg because it depends on other nupkgs from this leg -->
<ItemGroup Condition="'$(BuildAllConfigurations)' == 'true'">
<Project Include="$(MSBuildProjectName).pkgproj" />
</ItemGroup>
<Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), dir.traversal.targets))\dir.traversal.targets" />
</Project>

View File

@ -0,0 +1,78 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="14.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), dir.props))\dir.props" />
<PropertyGroup>
<PackageVersion>2.0.0</PackageVersion>
</PropertyGroup>
<ItemDefinitionGroup>
<LibraryPackage>
<Version>4.4.0</Version>
</LibraryPackage>
<PrereleaseLibraryPackage>
<Version>4.5.0</Version>
</PrereleaseLibraryPackage>
</ItemDefinitionGroup>
<ItemGroup>
<PackageIndex Include="$(MSBuildThisFileDirectory)externalIndex.json" />
</ItemGroup>
<ItemGroup>
<PrereleaseLibraryPackage Include="Microsoft.Win32.Registry" />
<PrereleaseLibraryPackage Include="Microsoft.Win32.Registry.AccessControl" />
<PrereleaseLibraryPackage Include="System.CodeDom" />
<PrereleaseLibraryPackage Include="System.ComponentModel.Composition" />
<PrereleaseLibraryPackage Include="System.Configuration.ConfigurationManager" />
<PrereleaseLibraryPackage Include="System.Data.Odbc" />
<PrereleaseLibraryPackage Include="System.Data.DataSetExtensions" />
<PrereleaseLibraryPackage Include="System.Drawing.Common" />
<PrereleaseLibraryPackage Include="System.Diagnostics.EventLog" />
<PrereleaseLibraryPackage Include="System.Diagnostics.PerformanceCounter" />
<PrereleaseLibraryPackage Include="System.DirectoryServices" />
<PrereleaseLibraryPackage Include="System.DirectoryServices.AccountManagement" />
<PrereleaseLibraryPackage Include="System.DirectoryServices.Protocols" />
<PrereleaseLibraryPackage Include="System.IO.FileSystem.AccessControl" />
<PrereleaseLibraryPackage Include="System.IO.Packaging" />
<PrereleaseLibraryPackage Include="System.IO.Pipes.AccessControl" />
<PrereleaseLibraryPackage Include="System.IO.Ports" />
<PrereleaseLibraryPackage Include="System.Management" />
<PrereleaseLibraryPackage Include="System.Runtime.Caching" />
<PrereleaseLibraryPackage Include="System.Security.AccessControl" />
<PrereleaseLibraryPackage Include="System.Security.Cryptography.Pkcs" />
<PrereleaseLibraryPackage Include="System.Security.Cryptography.ProtectedData" />
<PrereleaseLibraryPackage Include="System.Security.Cryptography.Xml" />
<PrereleaseLibraryPackage Include="System.Security.Permissions" />
<PrereleaseLibraryPackage Include="System.Security.Principal.Windows" />
<PrereleaseLibraryPackage Include="System.ServiceModel.Syndication" />
<PrereleaseLibraryPackage Include="System.ServiceProcess.ServiceController" />
<PrereleaseLibraryPackage Include="System.Text.Encoding.CodePages" />
<PrereleaseLibraryPackage Include="System.Threading.AccessControl" />
<!-- External pre-release packages -->
<LibraryPackage Include="System.ServiceModel.Primitives">
<Version>4.4.1-servicing-25917-01</Version>
</LibraryPackage>
<!-- Stable packages shipped already for netcoreapp2.0 -->
<LibraryPackage Include="System.Data.SqlClient" />
<LibraryPackage Include="System.Security.Cryptography.Cng" />
<LibraryPackage Include="System.ServiceModel.Duplex" />
<LibraryPackage Include="System.ServiceModel.Http" />
<LibraryPackage Include="System.ServiceModel.NetTcp" />
<LibraryPackage Include="System.ServiceModel.Security" />
</ItemGroup>
<ItemGroup>
<Dependency Include="@(LibraryPackage)" />
<Dependency Include="@(PrereleaseLibraryPackage)" />
<!-- Include dependency to shims package -->
<Dependency Include="Microsoft.Windows.Compatibility.Shims">
<Version>$(CompatibilityShimsPackageVersion)</Version>
</Dependency>
</ItemGroup>
<Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), dir.targets))\dir.targets" />
</Project>

View File

@ -0,0 +1,11 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<DisableImplicitFrameworkReferences Condition="'$(TargetFramework)' == 'netcoreapp2.0'">true</DisableImplicitFrameworkReferences>
<PreserveCompilationContext>true</PreserveCompilationContext>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Microsoft.Windows.Compatibility" Version="$(CompatibilityPackageVersion)" />
<PackageReference Condition="'$(TargetFramework)' == 'netcoreapp2.0'" Include="Microsoft.NETCore.App" Version="2.0.0" />
</ItemGroup>
</Project>

View File

@ -0,0 +1,65 @@
$repoRoot = ((get-item $PSScriptRoot).parent.parent.parent.FullName);
$winRID = "win7-x64";
$dotnetPath = -join($repoRoot, "\Tools\dotnetcli\dotnet.exe")
$csprojPath = -join($PSScriptRoot, "\", (Get-ChildItem $PSScriptRoot"\*.csproj" | Select-Object -ExpandProperty Name))
$packagesCachePath = -join($repoRoot, "\packages")
$localPackageSourcePath = -join($repoRoot, "\bin\packages\Debug\")
$packageName = "Microsoft.Windows.Compatibility"
if (!(Test-Path $localPackageSourcePath))
{
$localPackageSourcePath = -join($repoRoot, "\bin\packages\Release\")
if (!(Test-Path $localPackageSourcePath))
{
Write-Error -Message "Local package source must exist.";
Exit;
}
}
function _getPackageVersion()
{
$searchPattern = -join($localPackageSourcePath, $packageName, ".[0-9].[0-9].[0-9]*.nupkg")
if (!(Test-Path $searchPattern))
{
Write-Error -Message (-join("Didn't find package: Microsoft.Windows.Compatibility in source: ", $localPackageSourcePath, " please run build -allConfigurations"))
Exit;
}
if (!((get-item $searchPattern).FullName -match '([0-9].[0-9].[0-9][-a-z0-9]*)'))
{
Write-Error -Message "Package name is invalid"
Exit;
}
return $matches[0]
}
function _restoreAndPublish($targetFramework, $rid, $runtimeFramework, $refDirName)
{
$packageVersion = _getPackageVersion
& $dotnetPath restore --packages $packagesCachePath /p:RestoreSources="https://api.nuget.org/v3/index.json;$localPackageSourcePath" /p:TargetFramework=$targetFramework /p:CompatibilityPackageVersion=$packageVersion $csprojPath
& $dotnetPath publish -r $rid /p:RestoreSources="https://api.nuget.org/v3/index.json;$localPackageSourcePath" /p:TargetFramework=$targetFramework /p:CompatibilityPackageVersion=$packageVersion /p:RuntimeFrameworkVersion=$runtimeFramework $csprojPath
$outputPath = -join($PSScriptRoot, "\bin\Debug\", $targetFramework, "\", $rid, "\publish\refs\")
if (!(Test-Path $outputPath))
{
Write-Error -Message (-join("There was an error while publishing for framework: ", $targetFramework))
Exit;
}
Write-Output (-join("Published succedded for: ", $targetFramework))
$refPath = -join($repoRoot, "\bin\ref\", $refDirName)
if (Test-Path $refPath)
{
Remove-Item $refPath -r -force
}
New-Item $refPath -ItemType directory
Copy-Item (-join($outputPath, "*")) $refPath
}
_restoreAndPublish "netcoreapp2.0" $winRID "2.0.0" "netcoreapp20_compat"
_restoreAndPublish "netstandard2.0" $winRID "2.0.0" "netstandard20_compat"

View File

@ -64,8 +64,13 @@
"CommonTypes": []
},
{
"Name": "Microsoft.NETFramework.Compatibility",
"Description": "References a number of .NET Core libraries that are intended to provide support for more APIs that exist on .NET Framework.",
"Name": "Microsoft.Windows.Compatibility",
"Description": "This Windows Compatibility Pack provides access to APIs that were previously available only for .NET Framework. It can be used from both .NET Core as well as .NET Standard.",
"CommonTypes": []
},
{
"Name": "Microsoft.Windows.Compatibility.Shims",
"Description": "This package provides infrastructure services and shouldn't be referenced directly from your code. It provides facade assemblies in order to make the Microsoft.Windows.Compatibility package work across all .NET implementations.",
"CommonTypes": []
},
{
@ -163,7 +168,7 @@
},
{
"Name": "Microsoft.XmlSerializer.Generator",
"Description": "Provides SGen tool to generate Xml serialization code for types in a specified assembly in order to improve the startup performance of a XmlSerializer when it serializes or deserializes objects of the specified types",
"Description": "Like the Xml Serializer Generator (sgen.exe) on desktop, Microsoft.XmlSerializer.Generator NuGet package is the solution for .NET Core and .NET Standard Libraries. It creates an Xml serialization assembly for types contained in an assembly in order to improve the startup performance of Xml serialization when serializing or de-serializing objects of those types using XmlSerializer.",
"CommonTypes": []
},
{
@ -334,6 +339,27 @@
"System.ComponentModel.DataAnnotations.KeyAttribute"
]
},
{
"Name": "System.ComponentModel.Composition",
"Description": "This namespace provides classes that constitute the core of the Managed Extensibility Framework, or MEF.",
"CommonTypes": [
"System.ComponentModel.Composition.ChangeRejectedException",
"System.ComponentModel.Composition.CompositionContractMismatchException",
"System.ComponentModel.Composition.CompositionError",
"System.ComponentModel.Composition.CompositionException",
"System.ComponentModel.Composition.ExportAttribute",
"System.ComponentModel.Composition.ImportAttribute",
"System.ComponentModel.Composition.ImportCardinalityMismatchException",
"System.ComponentModel.Composition.Hosting.AggregateCatalog",
"System.ComponentModel.Composition.Hosting.ApplicationCatalog",
"System.ComponentModel.Composition.Hosting.AssemblyCatalog",
"System.ComponentModel.Composition.Hosting.CompositionContainer",
"System.ComponentModel.Composition.Primitives.ComposablePartException",
"System.ComponentModel.Composition.Primitives.ExportDefinition",
"System.ComponentModel.Composition.Primitives.ImportDefinition",
"System.ComponentModel.Composition.ReflectionModel.ReflectionModelServices"
]
},
{
"Name": "System.ComponentModel.EventBasedAsync",
"Description": "Provides support classes and delegates for the event-based asynchronous pattern. Developers should prefer the classes in the System.Threading.Tasks package.",
@ -558,6 +584,20 @@
"System.Diagnostics.FileVersionInfo"
]
},
{
"Name": "System.Diagnostics.EventLog",
"Description": "Provides the System.Diagnostics.EventLog class, which allows the applications to use the windows event log service.",
"CommonTypes": [
"System.Diagnostics.EventLog"
]
},
{
"Name": "System.Diagnostics.PerformanceCounter",
"Description": "Provides the System.Diagnostics.PerformanceCounter class, which allows access to Windows performance counters.",
"CommonTypes": [
"System.Diagnostics.PerformanceCounter"
]
},
{
"Name": "System.Diagnostics.Process",
"Description": "Provides the System.Diagnostics.Process class, which allows interaction with local and remote processes.",
@ -940,6 +980,15 @@
"System.Linq.EnumerableQuery"
]
},
{
"Name": "System.Management",
"Description": "Provides access to a rich set of management information and management events about the system, devices, and applications instrumented to the Windows Management Instrumentation (WMI) infrastructure.",
"CommonTypes": [
"System.Management.ManagementClass",
"System.Management.ManagementObject",
"System.Management.SelectQuery"
]
},
{
"Name": "System.Memory",
"Description": "Provides types for efficient low-allocation access to memory.",
@ -990,6 +1039,13 @@
"System.Net.WebResponse"
]
},
{
"Name": "System.Net.WebSockets.WebSocketProtocol",
"Description": "Provides the WebSocketProtocol class, which allows creating a websocket from a connected stream using WebSocketsProtocol.CreateFromConnectedStream.",
"CommonTypes": [
"System.Net.WebSockets.WebSocketProtocol"
]
},
{
"Name": "System.Net.Http.WinHttpHandler",
"Description": "Provides a message handler for HttpClient based on the WinHTTP interface of Windows. While similar to HttpClientHandler, it provides developers more granular control over the application's HTTP communication than the HttpClientHandler.",
@ -1349,6 +1405,22 @@
"System.Uri"
]
},
{
"Name": "System.Runtime.Caching",
"Description": "Provides classes to use caching facilities.",
"CommonTypes": [
"System.Runtime.Caching.CacheEntryChangeMonitor",
"System.Runtime.Caching.CacheEntryRemovedArguments",
"System.Runtime.Caching.CacheEntryUpdateArguments",
"System.Runtime.Caching.CacheItem",
"System.Runtime.Caching.CacheItemPolicy",
"System.Runtime.Caching.ChangeMonitor",
"System.Runtime.Caching.FileChangeMonitor",
"System.Runtime.Caching.HostFileChangeMonitor",
"System.Runtime.Caching.MemoryCache",
"System.Runtime.Caching.ObjectCache",
]
},
{
"Name": "System.Runtime.CompilerServices.Unsafe",
"Description": "Provides the System.Runtime.CompilerServices.Unsafe class, which provides generic, low-level functionality for manipulating pointers.",
@ -1872,6 +1944,14 @@
"System.Security.AccessControl.SemaphoreSecurity"
]
},
{
"Name": "System.Threading.Channels",
"Description": "Provides types for passing data between producers and consumers.",
"CommonTypes": [
"System.Threading.Channel",
"System.Threading.Channel<T>"
]
},
{
"Name": "System.Threading.ExecutionContext",
"Description": "Provides types for managing the information relevant to a logic thread or task of execution.",

View File

@ -6,7 +6,7 @@
<PreventImplementationReference Condition="'$(PackageTargetRuntime)' != ''">true</PreventImplementationReference>
<NETStandardVersion Condition="'$(NETStandardVersion)' == ''">2.0</NETStandardVersion>
<NETStandardPackageRefPath Condition="'$(NETStandardPackageRefPath)' == ''">$(PackagesDir)$(NETStandardPackageId.ToLower())\$(NETStandardPackageVersion)\build\netstandard$(NETStandardVersion)\ref</NETStandardPackageRefPath>
<NETStandardPackageRefPath Condition="'$(NETStandardPackageRefPath)' == ''">$(PackagesDir)$(NETStandardLibraryPackageId.ToLower())\$(NETStandardLibraryPackageVersion)\build\netstandard$(NETStandardVersion)\ref</NETStandardPackageRefPath>
<IncludeReferenceFiles Condition="'$(IncludeReferenceFiles)' == '' AND '$(PackageTargetRuntime)' == ''">true</IncludeReferenceFiles>
<IncludeLibFiles Condition="'$(IncludeLibFiles)' == '' AND '$(PackageTargetRuntime)' != ''">true</IncludeLibFiles>
@ -30,7 +30,7 @@
<Dependency Include="@(_buildRIDWithMetadata->'runtime.%(Identity).$(Id)')" />
<Dependency Include="Microsoft.NETCore.Platforms">
<Version>$(PlatformPackageVersion)</Version>
<Version>$(MicrosoftNETCorePlatformsPackageVersion)</Version>
<TargetFramework>$(TargetFramework)</TargetFramework>
</Dependency>
@ -165,6 +165,9 @@
<ItemGroup>
<_NETStandardFile Include="$(NETStandardPackageRefPath)\*.dll" />
<!-- Suppress errors caused by removing S.CM.C shim from inbox -->
<SuppressNETStandardMissingFile Include="System.ComponentModel.Composition" />
<_NETStandardMissingFile Include="@(_NETStandardFile->'%(FileName)')" Exclude="@(ClosureFile->'%(FileName)')" />
<_NETStandardMissingFileError Include="@(_NETStandardMissingFile)" Exclude="@(SuppressNETStandardMissingFile)" />
<_NETStandardSuppressedMissingFile Include="@(_NETStandardMissingFile)" Exclude="@(_NETStandardMissingFileError)" />
@ -173,8 +176,8 @@
<Error Condition="'@(_NETStandardFile)' == ''"
Text="Could not locate NETStandard package content at '$(NETStandardPackageRefPath)'" />
<Message Condition="'@(_NETStandardSuppressedMissingFile)' != ''" Text="Files'@(_NETStandardSuppressedMissingFile)' are part of '$(NETStandardPackageId)' but missing from this package's $(_fileSet) files. This error has been suppressed." />
<Error Condition="'@(_NETStandardMissingFileError)' != ''" Text="Files '@(_NETStandardMissingFileError)' are part of '$(NETStandardPackageId)' but missing from this package's $(_fileSet) files." />
<Message Condition="'@(_NETStandardSuppressedMissingFile)' != ''" Text="Files'@(_NETStandardSuppressedMissingFile)' are part of '$(NETStandardLibraryPackageId)' but missing from this package's $(_fileSet) files. This error has been suppressed." />
<Error Condition="'@(_NETStandardMissingFileError)' != ''" Text="Files '@(_NETStandardMissingFileError)' are part of '$(NETStandardLibraryPackageId)' but missing from this package's $(_fileSet) files." />
</Target>
<Target Name="GetSymbolPackageFiles" BeforeTargets="GetPackageFiles">

View File

@ -1,4 +1,4 @@
#!/usr/bin/env bash
working_tree_root="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
$working_tree_root/run.sh publish-packages $*
$working_tree_root/run.sh publish-packages "$@"
exit $?

View File

@ -119,7 +119,9 @@ case $CPUName in
aarch64)
__Arch=arm64
;;
amd64)
__Arch=x64
;;
*)
echo "Unknown CPU $CPUName detected, configuring as if for x64"
__Arch=x64
@ -385,7 +387,7 @@ if [ $RunTestSequential -eq 1 ]
then
maxProcesses=1;
else
if [ `uname` = "NetBSD" ]; then
if [ `uname` = "NetBSD" ] || [ `uname` = "FreeBSD" ]; then
maxProcesses=$(($(getconf NPROCESSORS_ONLN)+1))
else
maxProcesses=$(($(getconf _NPROCESSORS_ONLN)+1))

View File

@ -21,7 +21,7 @@ if defined VisualStudioVersion goto :Run
set _VSWHERE="%ProgramFiles(x86)%\Microsoft Visual Studio\Installer\vswhere.exe"
if exist %_VSWHERE% (
for /f "usebackq tokens=*" %%i in (`%_VSWHERE% -latest -property installationPath`) do set _VSCOMNTOOLS=%%i\Common7\Tools
for /f "usebackq tokens=*" %%i in (`%_VSWHERE% -latest -prerelease -property installationPath`) do set _VSCOMNTOOLS=%%i\Common7\Tools
)
if not exist "%_VSCOMNTOOLS%" set _VSCOMNTOOLS=%VS140COMNTOOLS%
if not exist "%_VSCOMNTOOLS%" (
@ -37,6 +37,11 @@ call "%_VSCOMNTOOLS%\VsDevCmd.bat"
:: misleading value (such as 'MCD' in HP PCs) may lead to build breakage (issue: #69).
set Platform=
:: Disable telemetry, first time experience, and global sdk look for the CLI
set DOTNET_CLI_TELEMETRY_OPTOUT=1
set DOTNET_SKIP_FIRST_TIME_EXPERIENCE=1
set DOTNET_MULTILEVEL_LOOKUP=0
:: Restore the Tools directory
call %~dp0init-tools.cmd
if NOT [%ERRORLEVEL%]==[0] exit /b 1

View File

@ -2,6 +2,11 @@
__scriptpath=$(cd "$(dirname "$0")"; pwd -P)
# Disable telemetry, first time experience, and global sdk look for the CLI
export DOTNET_CLI_TELEMETRY_OPTOUT=1
export DOTNET_SKIP_FIRST_TIME_EXPERIENCE=1
export DOTNET_MULTILEVEL_LOOKUP=0
# Source the init-tools.sh script rather than execute in order to preserve ulimit values in child-processes. https://github.com/dotnet/corefx/issues/19152
. $__scriptpath/init-tools.sh
@ -9,5 +14,5 @@ __toolRuntime=$__scriptpath/Tools
__dotnet=$__toolRuntime/dotnetcli/dotnet
cd $__scriptpath
$__dotnet $__toolRuntime/run.exe $__scriptpath/config.json $*
$__dotnet $__toolRuntime/run.exe $__scriptpath/config.json "$@"
exit $?

View File

@ -2,4 +2,4 @@
// The .NET Foundation licenses this file to you under the MIT license.
// See the LICENSE file in the project root for more information.
[assembly: System.Diagnostics.CodeAnalysis.ExcludeFromCodeCoverageAssembly]
[assembly: System.Diagnostics.CodeAnalysis.ExcludeFromCodeCoverage]

View File

@ -1,3 +1,8 @@
// Licensed to the .NET Foundation under one or more agreements.
// The .NET Foundation licenses this file to you under the MIT license.
// See the LICENSE file in the project root for more information.
using System;
using System.IO;
using System.Reflection;
using System.Collections.Generic;
@ -5,14 +10,25 @@ using Microsoft.Xunit.Performance.Api;
public class PerfHarness
{
public static void Main(string[] args)
public static int Main(string[] args)
{
using (XunitPerformanceHarness harness = new XunitPerformanceHarness(args))
try
{
foreach(var testName in GetTestAssemblies())
using (XunitPerformanceHarness harness = new XunitPerformanceHarness(args))
{
harness.RunBenchmarks(GetTestAssembly(testName));
foreach(var testName in GetTestAssemblies())
{
harness.RunBenchmarks(GetTestAssembly(testName));
}
}
return 0;
}
catch (Exception ex)
{
Console.WriteLine("[ERROR] Benchmark execution failed.");
Console.WriteLine($" {ex.ToString()}");
return 1;
}
}
@ -27,4 +43,4 @@ public class PerfHarness
{
return Directory.EnumerateFiles(".", "*.Performance.Tests.dll");
}
}
}

View File

@ -1,4 +1,4 @@
<?xml version="1.0" encoding="utf-8"?>
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="14.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), dir.props))\dir.props" />
<PropertyGroup>
@ -9,21 +9,19 @@
<AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects>
<CopyNuGetImplementations>false</CopyNuGetImplementations>
<NoWarn>0436</NoWarn>
<IsTestProject>true</IsTestProject>
<IsTestProject>true</IsTestProject>
</PropertyGroup>
<!-- Default configurations to help VS understand the configurations -->
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'netstandard-Debug|AnyCPU'" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'netstandard-Release|AnyCPU'" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'netstandard1.3-Debug|AnyCPU'" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'netstandard1.3-Release|AnyCPU'" />
<ItemGroup>
<Compile Include="PerfRunner.cs" />
</ItemGroup>
<ItemGroup Condition="'$(TargetGroup)' != 'net46'">
<Compile Include="AssemblyAttributes.cs" />
<Compile Include="$(CommonPath)\System\Diagnostics\CodeAnalysis\ExcludeFromCodeCoverageAssemblyAttribute.cs">
<Link>Common\System\Diagnostics\CodeAnalysis\ExcludeFromCodeCoverageAssemblyAttribute.cs</Link>
<Compile Include="$(CommonPath)\System\Diagnostics\CodeAnalysis\ExcludeFromCodeCoverageAttribute.cs">
<Link>Common\System\Diagnostics\CodeAnalysis\ExcludeFromCodeCoverageAttribute.cs</Link>
</Compile>
</ItemGroup>
<ItemGroup>
@ -32,4 +30,4 @@
</Content>
</ItemGroup>
<Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), dir.targets))\dir.targets" />
</Project>
</Project>

View File

@ -0,0 +1,331 @@
// Licensed to the .NET Foundation under one or more agreements.
// The .NET Foundation licenses this file to you under the MIT license.
// See the LICENSE file in the project root for more information.
using System;
using System.Runtime.CompilerServices;
using System.Runtime.Versioning;
#if BIT64
using nuint = System.UInt64;
using nint = System.Int64;
#else
using nuint = System.UInt32;
using nint = System.Int32;
#endif
//
// The implementations of most the methods in this file are provided as intrinsics.
// In CoreCLR, the body of the functions are replaced by the EE with unsafe code. See see getILIntrinsicImplementationForUnsafe for details.
// In CoreRT, see Internal.IL.Stubs.UnsafeIntrinsics for details.
//
namespace Internal.Runtime.CompilerServices
{
//
// Subsetted clone of System.Runtime.CompilerServices.Unsafe for internal runtime use.
// Keep in sync with https://github.com/dotnet/corefx/tree/master/src/System.Runtime.CompilerServices.Unsafe.
//
/// <summary>
/// For internal use only. Contains generic, low-level functionality for manipulating pointers.
/// </summary>
[CLSCompliant(false)]
public static unsafe class Unsafe
{
/// <summary>
/// Returns a pointer to the given by-ref parameter.
/// </summary>
[Intrinsic]
[NonVersionable]
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public static void* AsPointer<T>(ref T value)
{
throw new PlatformNotSupportedException();
// ldarg.0
// conv.u
// ret
}
/// <summary>
/// Returns the size of an object of the given type parameter.
/// </summary>
[Intrinsic]
[NonVersionable]
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public static int SizeOf<T>()
{
#if CORECLR
typeof(T).ToString(); // Type token used by the actual method body
#endif
throw new PlatformNotSupportedException();
// sizeof !!0
// ret
}
/// <summary>
/// Casts the given object to the specified type, performs no dynamic type checking.
/// </summary>
[Intrinsic]
[NonVersionable]
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public static T As<T>(object value) where T : class
{
throw new PlatformNotSupportedException();
// ldarg.0
// ret
}
/// <summary>
/// Reinterprets the given reference as a reference to a value of type <typeparamref name="TTo"/>.
/// </summary>
[Intrinsic]
[NonVersionable]
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public static ref TTo As<TFrom, TTo>(ref TFrom source)
{
throw new PlatformNotSupportedException();
// ldarg.0
// ret
}
/// <summary>
/// Adds an element offset to the given reference.
/// </summary>
[Intrinsic]
[NonVersionable]
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public static ref T Add<T>(ref T source, int elementOffset)
{
#if CORECLR
typeof(T).ToString(); // Type token used by the actual method body
throw new PlatformNotSupportedException();
#else
return ref AddByteOffset(ref source, (IntPtr)(elementOffset * (nint)SizeOf<T>()));
#endif
}
/// <summary>
/// Adds an element offset to the given reference.
/// </summary>
[Intrinsic]
[NonVersionable]
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public static ref T Add<T>(ref T source, IntPtr elementOffset)
{
#if CORECLR
typeof(T).ToString(); // Type token used by the actual method body
throw new PlatformNotSupportedException();
#else
return ref AddByteOffset(ref source, (IntPtr)((nint)elementOffset * (nint)SizeOf<T>()));
#endif
}
/// <summary>
/// Adds an element offset to the given pointer.
/// </summary>
[Intrinsic]
[NonVersionable]
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public static void* Add<T>(void* source, int elementOffset)
{
#if CORECLR
typeof(T).ToString(); // Type token used by the actual method body
throw new PlatformNotSupportedException();
#else
return (byte*)source + (elementOffset * (nint)SizeOf<T>());
#endif
}
/// <summary>
/// Adds an element offset to the given reference.
/// </summary>
[Intrinsic]
[NonVersionable]
[MethodImpl(MethodImplOptions.AggressiveInlining)]
internal static ref T AddByteOffset<T>(ref T source, nuint byteOffset)
{
return ref AddByteOffset(ref source, (IntPtr)(void*)byteOffset);
}
/// <summary>
/// Determines whether the specified references point to the same location.
/// </summary>
[Intrinsic]
[NonVersionable]
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public static bool AreSame<T>(ref T left, ref T right)
{
throw new PlatformNotSupportedException();
// ldarg.0
// ldarg.1
// ceq
// ret
}
/// <summary>
/// Initializes a block of memory at the given location with a given initial value
/// without assuming architecture dependent alignment of the address.
/// </summary>
[Intrinsic]
[NonVersionable]
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public static void InitBlockUnaligned(ref byte startAddress, byte value, uint byteCount)
{
for (uint i = 0; i < byteCount; i++)
AddByteOffset(ref startAddress, i) = value;
}
/// <summary>
/// Reads a value of type <typeparamref name="T"/> from the given location.
/// </summary>
[Intrinsic]
[NonVersionable]
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public static T ReadUnaligned<T>(void* source)
{
#if CORECLR
typeof(T).ToString(); // Type token used by the actual method body
throw new PlatformNotSupportedException();
#else
return Unsafe.As<byte, T>(ref *(byte*)source);
#endif
}
/// <summary>
/// Reads a value of type <typeparamref name="T"/> from the given location.
/// </summary>
[Intrinsic]
[NonVersionable]
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public static T ReadUnaligned<T>(ref byte source)
{
#if CORECLR
typeof(T).ToString(); // Type token used by the actual method body
throw new PlatformNotSupportedException();
#else
return Unsafe.As<byte, T>(ref source);
#endif
}
/// <summary>
/// Writes a value of type <typeparamref name="T"/> to the given location.
/// </summary>
[Intrinsic]
[NonVersionable]
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public static void WriteUnaligned<T>(void* destination, T value)
{
#if CORECLR
typeof(T).ToString(); // Type token used by the actual method body
throw new PlatformNotSupportedException();
#else
Unsafe.As<byte, T>(ref *(byte*)destination) = value;
#endif
}
/// <summary>
/// Writes a value of type <typeparamref name="T"/> to the given location.
/// </summary>
[Intrinsic]
[NonVersionable]
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public static void WriteUnaligned<T>(ref byte destination, T value)
{
#if CORECLR
typeof(T).ToString(); // Type token used by the actual method body
throw new PlatformNotSupportedException();
#else
Unsafe.As<byte, T>(ref destination) = value;
#endif
}
/// <summary>
/// Adds an element offset to the given reference.
/// </summary>
[Intrinsic]
[NonVersionable]
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public static ref T AddByteOffset<T>(ref T source, IntPtr byteOffset)
{
// This method is implemented by the toolchain
throw new PlatformNotSupportedException();
// ldarg.0
// ldarg.1
// add
// ret
}
/// <summary>
/// Reads a value of type <typeparamref name="T"/> from the given location.
/// </summary>
[Intrinsic]
[NonVersionable]
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public static T Read<T>(void* source)
{
return Unsafe.As<byte, T>(ref *(byte*)source);
}
/// <summary>
/// Reads a value of type <typeparamref name="T"/> from the given location.
/// </summary>
[Intrinsic]
[NonVersionable]
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public static T Read<T>(ref byte source)
{
return Unsafe.As<byte, T>(ref source);
}
/// <summary>
/// Writes a value of type <typeparamref name="T"/> to the given location.
/// </summary>
[Intrinsic]
[NonVersionable]
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public static void Write<T>(void* destination, T value)
{
Unsafe.As<byte, T>(ref *(byte*)destination) = value;
}
/// <summary>
/// Writes a value of type <typeparamref name="T"/> to the given location.
/// </summary>
[Intrinsic]
[NonVersionable]
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public static void Write<T>(ref byte destination, T value)
{
Unsafe.As<byte, T>(ref destination) = value;
}
/// <summary>
/// Reinterprets the given location as a reference to a value of type <typeparamref name="T"/>.
/// </summary>
[Intrinsic]
[NonVersionable]
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public static ref T AsRef<T>(void* source)
{
return ref Unsafe.As<byte, T>(ref *(byte*)source);
}
/// <summary>
/// Determines the byte offset from origin to target from the given references.
/// </summary>
[Intrinsic]
[NonVersionable]
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public static IntPtr ByteOffset<T>(ref T origin, ref T target)
{
throw new PlatformNotSupportedException();
}
}
}

View File

@ -0,0 +1,207 @@
// Licensed to the .NET Foundation under one or more agreements.
// The .NET Foundation licenses this file to you under the MIT license.
// See the LICENSE file in the project root for more information.
using System;
using System.Runtime.InteropServices;
internal static partial class Interop
{
/// <summary>Common Unix errno error codes.</summary>
internal enum Error
{
// These values were defined in src/Native/System.Native/fxerrno.h
//
// They compare against values obtained via Interop.Sys.GetLastError() not Marshal.GetLastWin32Error()
// which obtains the raw errno that varies between unixes. The strong typing as an enum is meant to
// prevent confusing the two. Casting to or from int is suspect. Use GetLastErrorInfo() if you need to
// correlate these to the underlying platform values or obtain the corresponding error message.
//
SUCCESS = 0,
E2BIG = 0x10001, // Argument list too long.
EACCES = 0x10002, // Permission denied.
EADDRINUSE = 0x10003, // Address in use.
EADDRNOTAVAIL = 0x10004, // Address not available.
EAFNOSUPPORT = 0x10005, // Address family not supported.
EAGAIN = 0x10006, // Resource unavailable, try again (same value as EWOULDBLOCK),
EALREADY = 0x10007, // Connection already in progress.
EBADF = 0x10008, // Bad file descriptor.
EBADMSG = 0x10009, // Bad message.
EBUSY = 0x1000A, // Device or resource busy.
ECANCELED = 0x1000B, // Operation canceled.
ECHILD = 0x1000C, // No child processes.
ECONNABORTED = 0x1000D, // Connection aborted.
ECONNREFUSED = 0x1000E, // Connection refused.
ECONNRESET = 0x1000F, // Connection reset.
EDEADLK = 0x10010, // Resource deadlock would occur.
EDESTADDRREQ = 0x10011, // Destination address required.
EDOM = 0x10012, // Mathematics argument out of domain of function.
EDQUOT = 0x10013, // Reserved.
EEXIST = 0x10014, // File exists.
EFAULT = 0x10015, // Bad address.
EFBIG = 0x10016, // File too large.
EHOSTUNREACH = 0x10017, // Host is unreachable.
EIDRM = 0x10018, // Identifier removed.
EILSEQ = 0x10019, // Illegal byte sequence.
EINPROGRESS = 0x1001A, // Operation in progress.
EINTR = 0x1001B, // Interrupted function.
EINVAL = 0x1001C, // Invalid argument.
EIO = 0x1001D, // I/O error.
EISCONN = 0x1001E, // Socket is connected.
EISDIR = 0x1001F, // Is a directory.
ELOOP = 0x10020, // Too many levels of symbolic links.
EMFILE = 0x10021, // File descriptor value too large.
EMLINK = 0x10022, // Too many links.
EMSGSIZE = 0x10023, // Message too large.
EMULTIHOP = 0x10024, // Reserved.
ENAMETOOLONG = 0x10025, // Filename too long.
ENETDOWN = 0x10026, // Network is down.
ENETRESET = 0x10027, // Connection aborted by network.
ENETUNREACH = 0x10028, // Network unreachable.
ENFILE = 0x10029, // Too many files open in system.
ENOBUFS = 0x1002A, // No buffer space available.
ENODEV = 0x1002C, // No such device.
ENOENT = 0x1002D, // No such file or directory.
ENOEXEC = 0x1002E, // Executable file format error.
ENOLCK = 0x1002F, // No locks available.
ENOLINK = 0x10030, // Reserved.
ENOMEM = 0x10031, // Not enough space.
ENOMSG = 0x10032, // No message of the desired type.
ENOPROTOOPT = 0x10033, // Protocol not available.
ENOSPC = 0x10034, // No space left on device.
ENOSYS = 0x10037, // Function not supported.
ENOTCONN = 0x10038, // The socket is not connected.
ENOTDIR = 0x10039, // Not a directory or a symbolic link to a directory.
ENOTEMPTY = 0x1003A, // Directory not empty.
ENOTSOCK = 0x1003C, // Not a socket.
ENOTSUP = 0x1003D, // Not supported (same value as EOPNOTSUP).
ENOTTY = 0x1003E, // Inappropriate I/O control operation.
ENXIO = 0x1003F, // No such device or address.
EOVERFLOW = 0x10040, // Value too large to be stored in data type.
EPERM = 0x10042, // Operation not permitted.
EPIPE = 0x10043, // Broken pipe.
EPROTO = 0x10044, // Protocol error.
EPROTONOSUPPORT = 0x10045, // Protocol not supported.
EPROTOTYPE = 0x10046, // Protocol wrong type for socket.
ERANGE = 0x10047, // Result too large.
EROFS = 0x10048, // Read-only file system.
ESPIPE = 0x10049, // Invalid seek.
ESRCH = 0x1004A, // No such process.
ESTALE = 0x1004B, // Reserved.
ETIMEDOUT = 0x1004D, // Connection timed out.
ETXTBSY = 0x1004E, // Text file busy.
EXDEV = 0x1004F, // Cross-device link.
ESOCKTNOSUPPORT = 0x1005E, // Socket type not supported.
EPFNOSUPPORT = 0x10060, // Protocol family not supported.
ESHUTDOWN = 0x1006C, // Socket shutdown.
EHOSTDOWN = 0x10070, // Host is down.
ENODATA = 0x10071, // No data available.
// POSIX permits these to have the same value and we make them always equal so
// that CoreFX cannot introduce a dependency on distinguishing between them that
// would not work on all platforms.
EOPNOTSUPP = ENOTSUP, // Operation not supported on socket.
EWOULDBLOCK = EAGAIN, // Operation would block.
}
// Represents a platform-agnostic Error and underlying platform-specific errno
internal struct ErrorInfo
{
private Error _error;
private int _rawErrno;
internal ErrorInfo(int errno)
{
_error = Interop.Sys.ConvertErrorPlatformToPal(errno);
_rawErrno = errno;
}
internal ErrorInfo(Error error)
{
_error = error;
_rawErrno = -1;
}
internal Error Error
{
get { return _error; }
}
internal int RawErrno
{
get { return _rawErrno == -1 ? (_rawErrno = Interop.Sys.ConvertErrorPalToPlatform(_error)) : _rawErrno; }
}
internal string GetErrorMessage()
{
return Interop.Sys.StrError(RawErrno);
}
public override string ToString()
{
return string.Format(
"RawErrno: {0} Error: {1} GetErrorMessage: {2}", // No localization required; text is member names used for debugging purposes
RawErrno, Error, GetErrorMessage());
}
}
internal partial class Sys
{
internal static Error GetLastError()
{
return ConvertErrorPlatformToPal(Marshal.GetLastWin32Error());
}
internal static ErrorInfo GetLastErrorInfo()
{
return new ErrorInfo(Marshal.GetLastWin32Error());
}
internal static unsafe string StrError(int platformErrno)
{
int maxBufferLength = 1024; // should be long enough for most any UNIX error
byte* buffer = stackalloc byte[maxBufferLength];
byte* message = StrErrorR(platformErrno, buffer, maxBufferLength);
if (message == null)
{
// This means the buffer was not large enough, but still contains
// as much of the error message as possible and is guaranteed to
// be null-terminated. We're not currently resizing/retrying because
// maxBufferLength is large enough in practice, but we could do
// so here in the future if necessary.
message = buffer;
}
return Marshal.PtrToStringAnsi((IntPtr)message);
}
[DllImport(Libraries.SystemNative, EntryPoint = "SystemNative_ConvertErrorPlatformToPal")]
internal static extern Error ConvertErrorPlatformToPal(int platformErrno);
[DllImport(Libraries.SystemNative, EntryPoint = "SystemNative_ConvertErrorPalToPlatform")]
internal static extern int ConvertErrorPalToPlatform(Error error);
[DllImport(Libraries.SystemNative, EntryPoint = "SystemNative_StrErrorR")]
private static unsafe extern byte* StrErrorR(int platformErrno, byte* buffer, int bufferSize);
}
}
// NOTE: extension method can't be nested inside Interop class.
internal static class InteropErrorExtensions
{
// Intended usage is e.g. Interop.Error.EFAIL.Info() for brevity
// vs. new Interop.ErrorInfo(Interop.Error.EFAIL) for synthesizing
// errors. Errors originated from the system should be obtained
// via GetLastErrorInfo(), not GetLastError().Info() as that will
// convert twice, which is not only inefficient but also lossy if
// we ever encounter a raw errno that no equivalent in the Error
// enum.
public static Interop.ErrorInfo Info(this Interop.Error error)
{
return new Interop.ErrorInfo(error);
}
}

View File

@ -0,0 +1,172 @@
// Licensed to the .NET Foundation under one or more agreements.
// The .NET Foundation licenses this file to you under the MIT license.
// See the LICENSE file in the project root for more information.
using System;
using System.Diagnostics;
using System.IO;
using System.Runtime.InteropServices;
using Microsoft.Win32.SafeHandles;
internal static partial class Interop
{
private static void ThrowExceptionForIoErrno(ErrorInfo errorInfo, string path, bool isDirectory, Func<ErrorInfo, ErrorInfo> errorRewriter)
{
Debug.Assert(errorInfo.Error != Error.SUCCESS);
Debug.Assert(errorInfo.Error != Error.EINTR, "EINTR errors should be handled by the native shim and never bubble up to managed code");
if (errorRewriter != null)
{
errorInfo = errorRewriter(errorInfo);
}
throw Interop.GetExceptionForIoErrno(errorInfo, path, isDirectory);
}
internal static void CheckIo(Error error, string path = null, bool isDirectory = false, Func<ErrorInfo, ErrorInfo> errorRewriter = null)
{
if (error != Interop.Error.SUCCESS)
{
ThrowExceptionForIoErrno(error.Info(), path, isDirectory, errorRewriter);
}
}
/// <summary>
/// Validates the result of system call that returns greater than or equal to 0 on success
/// and less than 0 on failure, with errno set to the error code.
/// If the system call failed for any reason, an exception is thrown. Otherwise, the system call succeeded.
/// </summary>
/// <param name="result">The result of the system call.</param>
/// <param name="path">The path with which this error is associated. This may be null.</param>
/// <param name="isDirectory">true if the <paramref name="path"/> is known to be a directory; otherwise, false.</param>
/// <param name="errorRewriter">Optional function to change an error code prior to processing it.</param>
/// <returns>
/// On success, returns the non-negative result long that was validated.
/// </returns>
internal static long CheckIo(long result, string path = null, bool isDirectory = false, Func<ErrorInfo, ErrorInfo> errorRewriter = null)
{
if (result < 0)
{
ThrowExceptionForIoErrno(Sys.GetLastErrorInfo(), path, isDirectory, errorRewriter);
}
return result;
}
/// <summary>
/// Validates the result of system call that returns greater than or equal to 0 on success
/// and less than 0 on failure, with errno set to the error code.
/// If the system call failed for any reason, an exception is thrown. Otherwise, the system call succeeded.
/// </summary>
/// <returns>
/// On success, returns the non-negative result int that was validated.
/// </returns>
internal static int CheckIo(int result, string path = null, bool isDirectory = false, Func<ErrorInfo, ErrorInfo> errorRewriter = null)
{
CheckIo((long)result, path, isDirectory, errorRewriter);
return result;
}
/// <summary>
/// Validates the result of system call that returns greater than or equal to 0 on success
/// and less than 0 on failure, with errno set to the error code.
/// If the system call failed for any reason, an exception is thrown. Otherwise, the system call succeeded.
/// </summary>
/// <returns>
/// On success, returns the non-negative result IntPtr that was validated.
/// </returns>
internal static IntPtr CheckIo(IntPtr result, string path = null, bool isDirectory = false, Func<ErrorInfo, ErrorInfo> errorRewriter = null)
{
CheckIo((long)result, path, isDirectory, errorRewriter);
return result;
}
/// <summary>
/// Validates the result of system call that returns greater than or equal to 0 on success
/// and less than 0 on failure, with errno set to the error code.
/// If the system call failed for any reason, an exception is thrown. Otherwise, the system call succeeded.
/// </summary>
/// <returns>
/// On success, returns the valid SafeFileHandle that was validated.
/// </returns>
internal static TSafeHandle CheckIo<TSafeHandle>(TSafeHandle handle, string path = null, bool isDirectory = false, Func<ErrorInfo, ErrorInfo> errorRewriter = null)
where TSafeHandle : SafeHandle
{
if (handle.IsInvalid)
{
ThrowExceptionForIoErrno(Sys.GetLastErrorInfo(), path, isDirectory, errorRewriter);
}
return handle;
}
/// <summary>
/// Gets an Exception to represent the supplied error info.
/// </summary>
/// <param name="error">The error info</param>
/// <param name="path">The path with which this error is associated. This may be null.</param>
/// <param name="isDirectory">true if the <paramref name="path"/> is known to be a directory; otherwise, false.</param>
/// <returns></returns>
internal static Exception GetExceptionForIoErrno(ErrorInfo errorInfo, string path = null, bool isDirectory = false)
{
// Translate the errno into a known set of exception types. For cases where multiple errnos map
// to the same exception type, include an inner exception with the details.
switch (errorInfo.Error)
{
case Error.ENOENT:
if (isDirectory)
{
return !string.IsNullOrEmpty(path) ?
new DirectoryNotFoundException(SR.Format(SR.IO_PathNotFound_Path, path)) :
new DirectoryNotFoundException(SR.IO_PathNotFound_NoPathName);
}
else
{
return !string.IsNullOrEmpty(path) ?
new FileNotFoundException(SR.Format(SR.IO_FileNotFound_FileName, path), path) :
new FileNotFoundException(SR.IO_FileNotFound);
}
case Error.EACCES:
case Error.EBADF:
case Error.EPERM:
Exception inner = GetIOException(errorInfo);
return !string.IsNullOrEmpty(path) ?
new UnauthorizedAccessException(SR.Format(SR.UnauthorizedAccess_IODenied_Path, path), inner) :
new UnauthorizedAccessException(SR.UnauthorizedAccess_IODenied_NoPathName, inner);
case Error.ENAMETOOLONG:
return !string.IsNullOrEmpty(path) ?
new PathTooLongException(SR.Format(SR.IO_PathTooLong_Path, path)) :
new PathTooLongException(SR.IO_PathTooLong);
case Error.EWOULDBLOCK:
return !string.IsNullOrEmpty(path) ?
new IOException(SR.Format(SR.IO_SharingViolation_File, path), errorInfo.RawErrno) :
new IOException(SR.IO_SharingViolation_NoFileName, errorInfo.RawErrno);
case Error.ECANCELED:
return new OperationCanceledException();
case Error.EFBIG:
return new ArgumentOutOfRangeException("value", SR.ArgumentOutOfRange_FileLengthTooBig);
case Error.EEXIST:
if (!string.IsNullOrEmpty(path))
{
return new IOException(SR.Format(SR.IO_FileExists_Name, path), errorInfo.RawErrno);
}
goto default;
default:
return GetIOException(errorInfo);
}
}
internal static Exception GetIOException(Interop.ErrorInfo errorInfo)
{
return new IOException(errorInfo.GetErrorMessage(), errorInfo.RawErrno);
}
}

View File

@ -0,0 +1,12 @@
// Licensed to the .NET Foundation under one or more agreements.
// The .NET Foundation licenses this file to you under the MIT license.
// See the LICENSE file in the project root for more information.
internal static partial class Interop
{
internal static partial class Libraries
{
internal const string GlobalizationInterop = "System.Globalization.Native";
internal const string SystemNative = "System.Native";
}
}

View File

@ -0,0 +1,33 @@
// Licensed to the .NET Foundation under one or more agreements.
// The .NET Foundation licenses this file to you under the MIT license.
// See the LICENSE file in the project root for more information.
using System;
using System.Globalization;
using System.Runtime.InteropServices;
using System.Text;
internal static partial class Interop
{
internal static partial class GlobalizationInterop
{
internal delegate void EnumCalendarInfoCallback(
[MarshalAs(UnmanagedType.LPWStr)] string calendarString,
IntPtr context);
[DllImport(Libraries.GlobalizationInterop, CharSet = CharSet.Unicode, EntryPoint = "GlobalizationNative_GetCalendars")]
internal static extern int GetCalendars(string localeName, CalendarId[] calendars, int calendarsCapacity);
[DllImport(Libraries.GlobalizationInterop, CharSet = CharSet.Unicode, EntryPoint = "GlobalizationNative_GetCalendarInfo")]
internal static extern ResultCode GetCalendarInfo(string localeName, CalendarId calendarId, CalendarDataType calendarDataType, [Out] StringBuilder result, int resultCapacity);
[DllImport(Libraries.GlobalizationInterop, CharSet = CharSet.Unicode, EntryPoint = "GlobalizationNative_EnumCalendarInfo")]
internal static extern bool EnumCalendarInfo(EnumCalendarInfoCallback callback, string localeName, CalendarId calendarId, CalendarDataType calendarDataType, IntPtr context);
[DllImport(Libraries.GlobalizationInterop, EntryPoint = "GlobalizationNative_GetLatestJapaneseEra")]
internal static extern int GetLatestJapaneseEra();
[DllImport(Libraries.GlobalizationInterop, EntryPoint = "GlobalizationNative_GetJapaneseEraStartDate")]
internal static extern bool GetJapaneseEraStartDate(int era, out int startYear, out int startMonth, out int startDay);
}
}

View File

@ -0,0 +1,23 @@
// Licensed to the .NET Foundation under one or more agreements.
// The .NET Foundation licenses this file to you under the MIT license.
// See the LICENSE file in the project root for more information.
using System;
using System.Runtime.InteropServices;
using System.Security;
using System.Text;
internal static partial class Interop
{
internal static partial class GlobalizationInterop
{
[DllImport(Libraries.GlobalizationInterop, CharSet = CharSet.Unicode, EntryPoint = "GlobalizationNative_ChangeCase")]
internal unsafe static extern void ChangeCase(char* src, int srcLen, char* dstBuffer, int dstBufferCapacity, bool bToUpper);
[DllImport(Libraries.GlobalizationInterop, CharSet = CharSet.Unicode, EntryPoint = "GlobalizationNative_ChangeCaseInvariant")]
internal unsafe static extern void ChangeCaseInvariant(char* src, int srcLen, char* dstBuffer, int dstBufferCapacity, bool bToUpper);
[DllImport(Libraries.GlobalizationInterop, CharSet = CharSet.Unicode, EntryPoint = "GlobalizationNative_ChangeCaseTurkish")]
internal unsafe static extern void ChangeCaseTurkish(char* src, int srcLen, char* dstBuffer, int dstBufferCapacity, bool bToUpper);
}
}

View File

@ -0,0 +1,69 @@
// Licensed to the .NET Foundation under one or more agreements.
// The .NET Foundation licenses this file to you under the MIT license.
// See the LICENSE file in the project root for more information.
using System;
using System.Globalization;
using System.Runtime.InteropServices;
using System.Security;
internal static partial class Interop
{
internal static partial class GlobalizationInterop
{
[DllImport(Libraries.GlobalizationInterop, CharSet = CharSet.Unicode, EntryPoint = "GlobalizationNative_GetSortHandle")]
internal unsafe static extern ResultCode GetSortHandle(byte[] localeName, out SafeSortHandle sortHandle);
[DllImport(Libraries.GlobalizationInterop, CharSet = CharSet.Unicode, EntryPoint = "GlobalizationNative_CloseSortHandle")]
internal unsafe static extern void CloseSortHandle(IntPtr handle);
[DllImport(Libraries.GlobalizationInterop, CharSet = CharSet.Unicode, EntryPoint = "GlobalizationNative_CompareString")]
internal unsafe static extern int CompareString(SafeSortHandle sortHandle, char* lpStr1, int cwStr1Len, char* lpStr2, int cwStr2Len, CompareOptions options);
[DllImport(Libraries.GlobalizationInterop, CharSet = CharSet.Unicode, EntryPoint = "GlobalizationNative_IndexOf")]
internal unsafe static extern int IndexOf(SafeSortHandle sortHandle, string target, int cwTargetLength, char* pSource, int cwSourceLength, CompareOptions options, int* matchLengthPtr);
[DllImport(Libraries.GlobalizationInterop, CharSet = CharSet.Unicode, EntryPoint = "GlobalizationNative_LastIndexOf")]
internal unsafe static extern int LastIndexOf(SafeSortHandle sortHandle, string target, int cwTargetLength, char* pSource, int cwSourceLength, CompareOptions options);
[DllImport(Libraries.GlobalizationInterop, CharSet = CharSet.Unicode, EntryPoint = "GlobalizationNative_IndexOfOrdinalIgnoreCase")]
internal unsafe static extern int IndexOfOrdinalIgnoreCase(string target, int cwTargetLength, char* pSource, int cwSourceLength, bool findLast);
[DllImport(Libraries.GlobalizationInterop, CharSet = CharSet.Unicode, EntryPoint = "GlobalizationNative_StartsWith")]
[return: MarshalAs(UnmanagedType.Bool)]
internal unsafe static extern bool StartsWith(SafeSortHandle sortHandle, string target, int cwTargetLength, string source, int cwSourceLength, CompareOptions options);
[DllImport(Libraries.GlobalizationInterop, CharSet = CharSet.Unicode, EntryPoint = "GlobalizationNative_EndsWith")]
[return: MarshalAs(UnmanagedType.Bool)]
internal unsafe static extern bool EndsWith(SafeSortHandle sortHandle, string target, int cwTargetLength, string source, int cwSourceLength, CompareOptions options);
[DllImport(Libraries.GlobalizationInterop, CharSet = CharSet.Unicode, EntryPoint = "GlobalizationNative_GetSortKey")]
internal unsafe static extern int GetSortKey(SafeSortHandle sortHandle, string str, int strLength, byte* sortKey, int sortKeyLength, CompareOptions options);
[DllImport(Libraries.GlobalizationInterop, CharSet = CharSet.Unicode, EntryPoint = "GlobalizationNative_CompareStringOrdinalIgnoreCase")]
internal unsafe static extern int CompareStringOrdinalIgnoreCase(char* lpStr1, int cwStr1Len, char* lpStr2, int cwStr2Len);
[DllImport(Libraries.GlobalizationInterop, EntryPoint = "GlobalizationNative_GetSortVersion")]
internal static extern int GetSortVersion(SafeSortHandle sortHandle);
internal class SafeSortHandle : SafeHandle
{
private SafeSortHandle() :
base(IntPtr.Zero, true)
{
}
public override bool IsInvalid
{
get { return handle == IntPtr.Zero; }
}
protected override bool ReleaseHandle()
{
CloseSortHandle(handle);
SetHandle(IntPtr.Zero);
return true;
}
}
}
}

View File

@ -0,0 +1,16 @@
// Licensed to the .NET Foundation under one or more agreements.
// The .NET Foundation licenses this file to you under the MIT license.
// See the LICENSE file in the project root for more information.
using System;
using System.Runtime.InteropServices;
using System.Runtime.CompilerServices;
internal static partial class Interop
{
internal static partial class GlobalizationInterop
{
[DllImport(Libraries.GlobalizationInterop, EntryPoint = "GlobalizationNative_LoadICU")]
internal static extern int LoadICU();
}
}

View File

@ -0,0 +1,21 @@
// Licensed to the .NET Foundation under one or more agreements.
// The .NET Foundation licenses this file to you under the MIT license.
// See the LICENSE file in the project root for more information.
using System;
using System.Runtime.InteropServices;
internal static partial class Interop
{
internal static partial class GlobalizationInterop
{
internal const int AllowUnassigned = 0x1;
internal const int UseStd3AsciiRules = 0x2;
[DllImport(Libraries.GlobalizationInterop, CharSet = CharSet.Unicode, EntryPoint = "GlobalizationNative_ToAscii")]
internal static unsafe extern int ToAscii(uint flags, char* src, int srcLen, char* dstBuffer, int dstBufferCapacity);
[DllImport(Libraries.GlobalizationInterop, CharSet = CharSet.Unicode, EntryPoint = "GlobalizationNative_ToUnicode")]
internal static unsafe extern int ToUnicode(uint flags, char* src, int srcLen, char* dstBuffer, int dstBufferCapacity);
}
}

View File

@ -0,0 +1,40 @@
// Licensed to the .NET Foundation under one or more agreements.
// The .NET Foundation licenses this file to you under the MIT license.
// See the LICENSE file in the project root for more information.
using System;
using System.Runtime.InteropServices;
using System.Text;
internal static partial class Interop
{
internal static partial class GlobalizationInterop
{
[DllImport(Libraries.GlobalizationInterop, CharSet = CharSet.Unicode, EntryPoint = "GlobalizationNative_GetLocaleName")]
[return: MarshalAs(UnmanagedType.Bool)]
internal unsafe static extern bool GetLocaleName(string localeName, [Out] StringBuilder value, int valueLength);
[DllImport(Libraries.GlobalizationInterop, CharSet = CharSet.Unicode, EntryPoint = "GlobalizationNative_GetLocaleInfoString")]
[return: MarshalAs(UnmanagedType.Bool)]
internal unsafe static extern bool GetLocaleInfoString(string localeName, uint localeStringData, [Out] StringBuilder value, int valueLength);
[DllImport(Libraries.GlobalizationInterop, CharSet = CharSet.Unicode, EntryPoint = "GlobalizationNative_GetDefaultLocaleName")]
[return: MarshalAs(UnmanagedType.Bool)]
internal unsafe static extern bool GetDefaultLocaleName([Out] StringBuilder value, int valueLength);
[DllImport(Libraries.GlobalizationInterop, CharSet = CharSet.Unicode, EntryPoint = "GlobalizationNative_GetLocaleTimeFormat")]
[return: MarshalAs(UnmanagedType.Bool)]
internal unsafe static extern bool GetLocaleTimeFormat(string localeName, bool shortFormat, [Out] StringBuilder value, int valueLength);
[DllImport(Libraries.GlobalizationInterop, CharSet = CharSet.Unicode, EntryPoint = "GlobalizationNative_GetLocaleInfoInt")]
[return: MarshalAs(UnmanagedType.Bool)]
internal unsafe static extern bool GetLocaleInfoInt(string localeName, uint localeNumberData, ref int value);
[DllImport(Libraries.GlobalizationInterop, CharSet = CharSet.Unicode, EntryPoint = "GlobalizationNative_GetLocaleInfoGroupingSizes")]
[return: MarshalAs(UnmanagedType.Bool)]
internal unsafe static extern bool GetLocaleInfoGroupingSizes(string localeName, uint localeGroupingData, ref int primaryGroupSize, ref int secondaryGroupSize);
[DllImport(Libraries.GlobalizationInterop, CharSet = CharSet.Unicode, EntryPoint = "GlobalizationNative_GetLocales")]
internal unsafe static extern int GetLocales([Out] Char[] value, int valueLength);
}
}

View File

@ -0,0 +1,19 @@
// Licensed to the .NET Foundation under one or more agreements.
// The .NET Foundation licenses this file to you under the MIT license.
// See the LICENSE file in the project root for more information.
using System;
using System.Runtime.InteropServices;
using System.Text;
internal static partial class Interop
{
internal static partial class GlobalizationInterop
{
[DllImport(Libraries.GlobalizationInterop, CharSet = CharSet.Unicode, EntryPoint = "GlobalizationNative_IsNormalized")]
internal static extern int IsNormalized(NormalizationForm normalizationForm, string src, int srcLen);
[DllImport(Libraries.GlobalizationInterop, CharSet = CharSet.Unicode, EntryPoint = "GlobalizationNative_NormalizeString")]
internal static extern int NormalizeString(NormalizationForm normalizationForm, string src, int srcLen, [Out] char[] dstBuffer, int dstBufferCapacity);
}
}

View File

@ -0,0 +1,18 @@
// Licensed to the .NET Foundation under one or more agreements.
// The .NET Foundation licenses this file to you under the MIT license.
// See the LICENSE file in the project root for more information.
internal static partial class Interop
{
internal static partial class GlobalizationInterop
{
// needs to be kept in sync with ResultCode in System.Globalization.Native
internal enum ResultCode
{
Success = 0,
UnknownError = 1,
InsufficentBuffer = 2,
OutOfMemory = 3
}
}
}

Some files were not shown because too many files have changed in this diff Show More