<!-- Product dependency versions. -->
<PropertyGroup>
- <NETStandardLibraryPackageVersion>2.0.3</NETStandardLibraryPackageVersion>
<NETStandardLibraryPackageId>NETStandard.Library</NETStandardLibraryPackageId>
<!-- SNI runtime package -->
<ElementName>MicrosoftNETCorePlatformsPackageVersion</ElementName>
<PackageId>Microsoft.NETCore.Platforms</PackageId>
</XmlUpdateStep>
- <XmlUpdateStep Include="Standard">
- <Path>$(MSBuildThisFileFullPath)</Path>
- <ElementName>NETStandardLibraryPackageVersion</ElementName>
- <PackageId>$(NETStandardLibraryPackageId)</PackageId>
- </XmlUpdateStep>
<XmlUpdateStep Include="ProjectNTfs">
<Path>$(MSBuildThisFileFullPath)</Path>
<ElementName>ProjectNTfsExpectedPrerelease</ElementName>
<PropertyGroup>
<BuildConfigurations>
netstandard;
+ netcoreapp;
+ uap;
</BuildConfigurations>
</PropertyGroup>
</Project>
Can be removed when API is added and this assembly is versioned to 4.1.* -->
<AssemblyVersion>4.0.2.0</AssemblyVersion>
<ProjectGuid>{11AE73F7-3532-47B9-8FF6-B4F22D76456C}</ProjectGuid>
- <Configurations>netstandard-Debug;netstandard-Release</Configurations>
+ <Configurations>netstandard-Debug;netstandard-Release;netcoreapp-Debug;netcoreapp-Release;uap-Debug;uap-Release</Configurations>
</PropertyGroup>
<ItemGroup>
<Compile Include="System.Buffers.cs" />
</ItemGroup>
+ <ItemGroup Condition="'$(TargetGroup)' == 'uap' OR '$(TargetGroup)' == 'netcoreapp'">
+ <ProjectReference Include="..\..\System.Runtime\ref\System.Runtime.csproj" />
+ </ItemGroup>
</Project>
\ No newline at end of file
<Project ToolsVersion="14.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<BuildConfigurations>
+ netcoreapp;
netstandard;
uap10.0.16299;
uap;
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<ProjectGuid>{7DF3C428-AAD6-41C7-98E6-6CACFD5C391E}</ProjectGuid>
- <Configurations>netstandard-Debug;netstandard-Release;uap-Debug;uap-Release;uap10.0.16299-Debug;uap10.0.16299-Release</Configurations>
+ <Configurations>netstandard-Debug;netstandard-Release;uap-Debug;uap-Release;uap10.0.16299-Debug;uap10.0.16299-Release;netcoreapp-Debug;netcoreapp-Release</Configurations>
</PropertyGroup>
<ItemGroup>
<Compile Include="System.Reflection.DispatchProxy.cs" />
<ItemGroup Condition="'$(TargetGroup)' == 'uap10.0.16299'">
<Reference Include="System.Runtime" />
</ItemGroup>
- <ItemGroup Condition="'$(TargetGroup)' == 'uap'">
+ <ItemGroup Condition="'$(TargetGroup)' == 'uap' OR '$(TargetGroup)' == 'netcoreapp'">
<ProjectReference Include="..\..\System.Runtime\ref\System.Runtime.csproj" />
</ItemGroup>
</Project>
\ No newline at end of file
</BinPlaceConfiguration>
</ItemGroup>
- <Target Name="AddNETStandardRefs" AfterTargets="ResolveReferences"
+ <Target Name="AddNETStandard21Refs" AfterTargets="ResolveReferences">
+ <PropertyGroup>
+ <_NETStandard21RefFolder>$(PackagesDir)$(NETStandardLibraryPackageId.ToLower())\$(NETStandardLibraryPackageVersion)\build\netstandard2.1\ref</_NETStandard21RefFolder>
+ </PropertyGroup>
+
+ <ItemGroup>
+ <_NetStandard21Files Include="$(_NETStandard21RefFolder)\*.dll" />
+ </ItemGroup>
+
+ <Error Condition="'@(_NetStandard21Files)' == ''" Text="Could not find package assets for netstandard2.1" />
+
+ <Copy SourceFiles="@(_NetStandard21Files)"
+ DestinationFolder="$(NetStandard21RefPath)"
+ SkipUnchangedFiles="true" />
+ </Target>
+
+ <Target Name="AddNETStandard20Refs" AfterTargets="ResolveReferences"
Condition="'$(_NETStandardTFMFolder)' != ''">
<PropertyGroup>
<_NETStandardRefFolder>$(PackagesDir)$(NETStandardLibraryPackageId.ToLower())\$(NETStandardLibraryPackageVersion)\build\$(_NETStandardTFMFolder)\ref</_NETStandardRefFolder>
Exclude="@(ExcludeNetStandardRefs -> '$(_NETStandardRefFolder)\%(Identity).dll')" />
</ItemGroup>
+ <Error Condition="'@(NetStandardRefs)' == ''" Text="Could not find package assets for netstandard2.0" />
+
<ItemGroup>
<Reference Include="@(NetStandardRefs)">
<Private>False</Private>
<IgnoredReference Include="System.Private.CoreLib" />
<IgnoredReference Include="Windows" />
<IgnoredReference Include="System.Private.Interop" />
- <IgnoredReference Include="Microsoft.Win32.Registry" /> <!-- Ignore for now since it's being exclude from closure below. Issue https://github.com/dotnet/corefx/issues/15966 -->
- <IgnoredReference Include="System.IO.IsolatedStorage" /> <!-- Ignore for now since it's being exclude from closure below. Issue https://github.com/dotnet/corefx/issues/15968 -->
+ <IgnoredReference Include="System.Reflection.Emit" /> <!-- Add an issue for this -->
+ <IgnoredReference Include="System.Reflection.Emit.ILGeneration" />
+ <IgnoredReference Include="System.Reflection.Emit.Lightweight" />
- <ExcludeFromClosure Include="System.IO.IsolatedStorage" /> <!-- IsolatedStorage depends on AccessControl which is not available for UAP -->
- <ExcludeFromClosure Include="Microsoft.Win32.Registry" /> <!-- Most likely this one will be removed from the package, it's just there today for the closure -->
<!-- Exclude shims from the closure verification -->
<ExcludeFromClosure Include="mscorlib" />
<ExcludeFromClosure Include="System" />
"netstandard": {
"InboxOn": {
"netcoreapp2.0": "2.0.0.0",
+ "netcoreapp3.0": "2.1.0.0",
"net461": "2.0.0.0",
"netstandard2.0": "2.0.0.0",
"uap10.0.16299": "2.0.0.0",
- "uap10.0.16300": "2.0.1.0"
+ "uap10.0.16300": "2.1.0.0"
}
},
"NETStandard.Library": {
<ApiCompatResponseFile>$(IntermediateOutputPath)/apicompat.rsp</ApiCompatResponseFile>
<ApiCompatBaselineFile>$(MSBuildThisFileDirectory)ApiCompatBaseline.$(TargetGroup).netfx461.txt</ApiCompatBaselineFile>
<ApiCompatBaselineIgnoreFile>$(MSBuildThisFileDirectory)ApiCompatBaseline.$(TargetGroup).netfx461.ignore.txt</ApiCompatBaselineIgnoreFile>
- <ApiCompatNSBaselineFile>$(MSBuildThisFileDirectory)ApiCompatBaseline.$(TargetGroup).netstandard20.txt</ApiCompatNSBaselineFile>
- <ApiCompatNSOnlyBaselineFile>$(MSBuildThisFileDirectory)ApiCompatBaseline.$(TargetGroup).netstandard20Only.txt</ApiCompatNSOnlyBaselineFile>
+ <ApiCompatNSBaselineFile>$(MSBuildThisFileDirectory)ApiCompatBaseline.$(TargetGroup).netstandard.txt</ApiCompatNSBaselineFile>
+ <ApiCompatNSOnlyBaselineFile>$(MSBuildThisFileDirectory)ApiCompatBaseline.$(TargetGroup).netstandardOnly.txt</ApiCompatNSOnlyBaselineFile>
<ApiCompatImplementationDirs>$(RefPath),$(GenFacadesOutputPath)</ApiCompatImplementationDirs>
<!-- If we are targeting uap or uapaot run ApiCompat against the implementation assemblies instead since they don't match the reference assemblies -->
<!-- also include $(RefPath) last to pick up windows.winmd dependency, which we don't place in RuntimePath -->
<Error Condition="'$(ApiCompatExitCode)' != '0'" Text="ApiCompat failed comparing netfx to $(TargetGroup)" />
<PropertyGroup>
- <NETStandard20OnlyRef>$(NetStandardRefPath)/netstandard.dll</NETStandard20OnlyRef>
- <!-- For netcoreapp also pass in System.Runtime to workaround issue in apicompat tool when it cannot find a core assembly -->
- <NETStandard20OnlyRef Condition="'$(TargetGroup)' == 'netcoreapp'">$(NETStandard20OnlyRef);$(RefPath)\System.Runtime.dll</NETStandard20OnlyRef>
+ <NETStandard21OnlyRef>$(NetStandard21RefPath)/netstandard.dll</NETStandard21OnlyRef>
</PropertyGroup>
- <Exec Command="$(_ApiCompatCommand) "$(NETStandard20OnlyRef)" @"$(ApiCompatResponseFile)" --baseline $(ApiCompatNSOnlyBaselineFile)"
+ <Exec Command="$(_ApiCompatCommand) "$(NETStandard21OnlyRef)" @"$(ApiCompatResponseFile)" --baseline $(ApiCompatNSOnlyBaselineFile)"
CustomErrorRegularExpression="^[a-zA-Z]+ :"
StandardOutputImportance="Low"
IgnoreExitCode="true"
<Error Condition="'$(ApiCompatExitCode)' != '0'" Text="ApiCompat failed comparing netstandard.dll to $(TargetGroup)" />
+ <!-- TODO: Once the repo targets netstandard2.1, have this instance of APICompat run against NetStandard21RefPath -->
<Exec Command="$(_ApiCompatCommand) "$(NetStandardRefPath)" --baseline "$(ApiCompatNSBaselineFile)" @"$(ApiCompatResponseFile)""
CustomErrorRegularExpression="^[a-zA-Z]+ :"
StandardOutputImportance="Low"
<StrongNameSig Condition="'%(NetfxReference.StrongNameSig)' == ''">StrongName</StrongNameSig>
<StrongNameSig Condition="'%(NetfxReference.StrongNameSig)' != ''">%(NetfxReference.StrongNameSig)</StrongNameSig>
</NetFxContracts>
- <NETStandardContracts Include="$(NetStandardRefPath)netstandard.dll" />
+ <!-- TODO - once we retarget everything to netstandard2.1, remove netcoreapp2.0 reference to netstandard2.0 netstandard.dll -->
+ <NETStandardContracts Condition="'$(TargetGroup)' == 'netcoreapp2.0'" Include="$(NetStandardRefPath)netstandard.dll" />
+ <NETStandardContracts Condition="'$(TargetGroup)' != 'netcoreapp2.0'" Include="$(NetStandard21RefPath)netstandard.dll" />
<GenFacadesContracts Include="@(NetFxContracts);@(NETStandardContracts)" />
<GenFacadesSeeds Include="$(RefPath)*.dll" />
</ItemGroup>