未验证 提交 57711f92 编写于 作者: K Kevin Ransom (msft) 提交者: GitHub

Automagic (#9845)

* Automagic

* update

* implicit fsharpcore

* e2e tests
上级 f36c6fbf
......@@ -19,6 +19,7 @@
<_ReplacementText>$([System.IO.File]::ReadAllText('%(NoneSubstituteText.FullPath)'))</_ReplacementText>
<_ReplacementText Condition="'%(NoneSubstituteText.Pattern1)' != ''">$(_ReplacementText.Replace('%(NoneSubstituteText.Pattern1)', '%(NoneSubstituteText.Replacement1)'))</_ReplacementText>
<_ReplacementText Condition="'%(NoneSubstituteText.Pattern2)' != ''">$(_ReplacementText.Replace('%(NoneSubstituteText.Pattern2)', '%(NoneSubstituteText.Replacement2)'))</_ReplacementText>
<_ReplacementText Condition="'%(NoneSubstituteText.Pattern3)' != ''">$(_ReplacementText.Replace('%(NoneSubstituteText.Pattern3)', '%(NoneSubstituteText.Replacement3)'))</_ReplacementText>
<_CopyToOutputDirectory Condition="'%(NoneSubstituteText.CopyToOutputDirectory)' != ''">%(NoneSubstituteText.CopyToOutputDirectory)</_CopyToOutputDirectory>
<_CopyToOutputDirectory Condition="'%(NoneSubstituteText.CopyToOutputDirectory)' == ''">Never</_CopyToOutputDirectory>
......
......@@ -36,6 +36,8 @@
<Replacement1>$(FSharpCoreShippedPackageVersion)</Replacement1>
<Pattern2>{{FSharpCorePreviewPackageVersion}}</Pattern2>
<Replacement2>$(FSharpCorePreviewPackageVersion)</Replacement2>
<Pattern3>{{FSCorePackageVersion}}</Pattern3>
<Replacement3>$(FSCorePackageVersion)</Replacement3>
</NoneSubstituteText>
<None Include="Microsoft.FSharp.Overrides.NetSdk.targets" CopyToOutputDirectory="PreserveNewest" />
</ItemGroup>
......
......@@ -74,12 +74,32 @@ WARNING: DO NOT MODIFY this file unless you are knowledgeable about MSBuild and
<PropertyGroup>
<DefaultValueTuplePackageVersion>4.4.0</DefaultValueTuplePackageVersion>
<DefaultFSharpCorePackageVersion>{{FSharpCoreShippedPackageVersion}}</DefaultFSharpCorePackageVersion>
<DefaultFSharpCorePreviewPackageVersion>{{FSharpCorePreviewPackageVersion}}</DefaultFSharpCorePreviewPackageVersion>
<ValueTupleImplicitPackageVersion>$(DefaultValueTuplePackageVersion)</ValueTupleImplicitPackageVersion>
<FSharpCoreImplicitPackageVersion>$(DefaultFSharpCorePackageVersion)</FSharpCoreImplicitPackageVersion>
<FSharpCoreShippedPackageVersion>{{FSharpCoreShippedPackageVersion}}</FSharpCoreShippedPackageVersion>
<FSharpCorePreviewPackageVersion>{{FSharpCorePreviewPackageVersion}}</FSharpCorePreviewPackageVersion>
<FSCorePackageVersion>{{FSCorePackageVersion}}</FSCorePackageVersion>
</PropertyGroup>
<ItemGroup>
<PackageReference
Include="FSharp.Core" Version="$(FSharpCoreImplicitPackageVersion)"
Condition = "'$(DisableImplicitFSharpCoreReference)' != 'true' and '$(FSharpCoreImplicitPackageVersion)' != ''"/>
<PackageReference
Include="FSharp.Core" Version="$(FSharpCoreShippedPackageVersion)"
Condition="'$(DisableImplicitFSharpCoreReference)' != 'true' and '$(FSharpCoreImplicitPackageVersion)' == '' and '$(_NETCoreSdkIsPreview)' == 'true' and '$(DisableFSharpCorePreviewCheck)' == 'true'"/>
<PackageReference
Include="FSharp.Core" Version="$(FSharpCorePreviewPackageVersion)"
Condition="'$(DisableImplicitFSharpCoreReference)' != 'true' and '$(FSharpCoreImplicitPackageVersion)' == '' and '$(_NETCoreSdkIsPreview)' == 'true' and '$(DisableFSharpCorePreviewCheck)' != 'true'"/>
<PackageReference
Include="FSharp.Core" Version="$(FSCorePackageVersion)"
Condition="'$(DisableImplicitFSharpCoreReference)' != 'true' and '$(FSharpCoreImplicitPackageVersion)' == '' and '$(_NETCoreSdkIsPreview)' != 'true'"/>
</ItemGroup>
<ItemGroup Condition="'$(DisableImplicitSystemValueTupleReference)' != 'true'
and ('$(TargetFrameworkIdentifier)' == '.NETFramework'
and ('$(_TargetFrameworkVersionWithoutV)' == ''
......@@ -94,10 +114,6 @@ WARNING: DO NOT MODIFY this file unless you are knowledgeable about MSBuild and
<PackageReference Include="System.ValueTuple" Version="$(ValueTupleImplicitPackageVersion)" />
</ItemGroup>
<ItemGroup Condition="'$(DisableImplicitFSharpCoreReference)' != 'true'">
<PackageReference Include="FSharp.Core" Version="$(FSharpCoreImplicitPackageVersion)" />
</ItemGroup>
<ItemDefinitionGroup>
<PackageReference>
<GeneratePathProperty>true</GeneratePathProperty>
......
......@@ -52,10 +52,8 @@ WARNING: DO NOT MODIFY this file unless you are knowledgeable about MSBuild and
<TargetsForTfmSpecificContentInPackage>$(TargetsForTfmSpecificContentInPackage);PackageFSharpDesignTimeTools</TargetsForTfmSpecificContentInPackage>
</PropertyGroup>
<!-- When the developer specifies UseFSharpPreview=true then resolve the highest preview package from the F# myget feed -->
<PropertyGroup Condition="'$(UseFSharpPreview)' == 'true'">
<FSharpCoreImplicitPackageVersion>$(DefaultFSharpCorePreviewPackageVersion)</FSharpCoreImplicitPackageVersion>
<RestoreSources>$(RestoreSources); https://dotnet.myget.org/F/fsharp/api/v3/index.json</RestoreSources>
<PropertyGroup>
<RestoreAdditionalProjectSources Condition="'$(_NETCoreSdkIsPreview)' != 'false'">$(RestoreAdditionalProjectSources);https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-tools/nuget/v3/index.json</RestoreAdditionalProjectSources>
</PropertyGroup>
<Target Name="CollectFSharpDesignTimeTools" BeforeTargets="BeforeCompile" DependsOnTargets="_GetFrameworkAssemblyReferences">
......
......@@ -2,10 +2,11 @@
<PropertyGroup>
<OutputType>Library</OutputType>
<TargetFrameworks>netcoreapp3.1;net461</TargetFrameworks>
<TargetFrameworks>netcoreapp3.1;net472</TargetFrameworks>
<FSharpToolsDirectory>typeproviders</FSharpToolsDirectory>
<DefineConstants>NO_GENERATIVE</DefineConstants>
<DefineConstants>IS_DESIGNTIME</DefineConstants>
<FSharpCoreImplicitPackageVersion>$(FSharpCoreShippedPackageVersion)</FSharpCoreImplicitPackageVersion>
</PropertyGroup>
<ItemGroup>
......
......@@ -6,6 +6,7 @@
<TargetFramework Condition=" '$(TestTargetFramework)' != '' ">$(TestTargetFramework)</TargetFramework>
<IsPackable>false</IsPackable>
<DefineConstants>NO_GENERATIVE</DefineConstants>
<FSharpCoreImplicitPackageVersion>$(FSharpCoreShippedPackageVersion)</FSharpCoreImplicitPackageVersion>
</PropertyGroup>
<ItemGroup>
......
......@@ -2,8 +2,9 @@
<PropertyGroup>
<OutputType>Library</OutputType>
<TargetFrameworks>netcoreapp3.1;net461</TargetFrameworks>
<TargetFrameworks>netcoreapp3.1;net472</TargetFrameworks>
<FSharpToolsDirectory>typeproviders</FSharpToolsDirectory>
<FSharpCoreImplicitPackageVersion>$(FSharpCoreShippedPackageVersion)</FSharpCoreImplicitPackageVersion>
<PackagePath>typeproviders</PackagePath>
</PropertyGroup>
......
......@@ -38,8 +38,8 @@ echo dotnet pack BasicProvider\BasicProvider.fsproj -o %~dp0artifacts -c %config
dotnet pack BasicProvider\BasicProvider.fsproj -o %~dp0artifacts -c %configuration% -v minimal -p:FSharpTestCompilerVersion=net40
if ERRORLEVEL 1 echo Error: TestBasicProvider failed && goto :failure
echo dotnet test BasicProvider.Tests\BasicProvider.Tests.fsproj -c %configuration% -v minimal -p:TestTargetFramework=net461 -p:FSharpTestCompilerVersion=net40
dotnet test BasicProvider.Tests\BasicProvider.Tests.fsproj -c %configuration% -v minimal -p:TestTargetFramework=net461 -p:FSharpTestCompilerVersion=net40
echo dotnet test BasicProvider.Tests\BasicProvider.Tests.fsproj -c %configuration% -v minimal -p:TestTargetFramework=net472 -p:FSharpTestCompilerVersion=net40
dotnet test BasicProvider.Tests\BasicProvider.Tests.fsproj -c %configuration% -v minimal -p:TestTargetFramework=net472 -p:FSharpTestCompilerVersion=net40
if ERRORLEVEL 1 echo Error: TestBasicProvider failed && goto :failure
echo dotnet test BasicProvider.Tests\BasicProvider.Tests.fsproj -c %configuration% -v minimal -p:TestTargetFramework=netcoreapp3.1 -p:FSharpTestCompilerVersion=coreclr
......@@ -56,8 +56,8 @@ echo dotnet pack BasicProvider\BasicProvider.fsproj -o %~dp0artifacts -c %config
dotnet pack BasicProvider\BasicProvider.fsproj -o %~dp0artifacts -c %configuration% -v minimal -p:FSharpTestCompilerVersion=coreclr
if ERRORLEVEL 1 echo Error: TestBasicProvider failed && goto :failure
echo dotnet test BasicProvider.Tests\BasicProvider.Tests.fsproj -c %configuration% -v minimal -p:TestTargetFramework=net461 -p:FSharpTestCompilerVersion=net40
dotnet test BasicProvider.Tests\BasicProvider.Tests.fsproj -c %configuration% -v minimal -p:TestTargetFramework=net461 -p:FSharpTestCompilerVersion=net40
echo dotnet test BasicProvider.Tests\BasicProvider.Tests.fsproj -c %configuration% -v minimal -p:TestTargetFramework=net472 -p:FSharpTestCompilerVersion=net40
dotnet test BasicProvider.Tests\BasicProvider.Tests.fsproj -c %configuration% -v minimal -p:TestTargetFramework=net472 -p:FSharpTestCompilerVersion=net40
if ERRORLEVEL 1 echo Error: TestBasicProvider failed && goto :failure
echo dotnet test BasicProvider.Tests\BasicProvider.Tests.fsproj -c %configuration% -v minimal -p:TestTargetFramework=netcoreapp3.1 -p:FSharpTestCompilerVersion=coreclr
......
......@@ -5,6 +5,7 @@
<TargetFramework Condition=" '$(TestTargetFramework)' == '' ">netcoreapp3.1</TargetFramework>
<TargetFramework Condition=" '$(TestTargetFramework)' != '' ">$(TestTargetFramework)</TargetFramework>
<IsPackable>false</IsPackable>
<FSharpCoreImplicitPackageVersion>$(FSharpCoreShippedPackageVersion)</FSharpCoreImplicitPackageVersion>
<DefineConstants>NO_GENERATIVE</DefineConstants>
</PropertyGroup>
......
......@@ -2,7 +2,8 @@
<PropertyGroup>
<OutputType>Library</OutputType>
<TargetFrameworks>netcoreapp3.1;net461</TargetFrameworks>
<TargetFrameworks>netcoreapp3.1;net472</TargetFrameworks>
<FSharpCoreImplicitPackageVersion>$(FSharpCoreShippedPackageVersion)</FSharpCoreImplicitPackageVersion>
</PropertyGroup>
<ItemGroup>
......
......@@ -38,8 +38,8 @@ echo dotnet pack ComboProvider\ComboProvider.fsproj -o %~dp0artifacts -c %config
dotnet pack ComboProvider\ComboProvider.fsproj -o %~dp0artifacts -c %configuration% -v minimal -p:FSharpTestCompilerVersion=net40
if ERRORLEVEL 1 echo Error: TestComboProvider failed && goto :failure
echo dotnet test ComboProvider.Tests\ComboProvider.Tests.fsproj -c %configuration% -v minimal -p:TestTargetFramework=net461 -p:FSharpTestCompilerVersion=net40
dotnet test ComboProvider.Tests\ComboProvider.Tests.fsproj -c %configuration% -v minimal -p:TestTargetFramework=net461 -p:FSharpTestCompilerVersion=net40
echo dotnet test ComboProvider.Tests\ComboProvider.Tests.fsproj -c %configuration% -v minimal -p:TestTargetFramework=net472 -p:FSharpTestCompilerVersion=net40
dotnet test ComboProvider.Tests\ComboProvider.Tests.fsproj -c %configuration% -v minimal -p:TestTargetFramework=net472 -p:FSharpTestCompilerVersion=net40
if ERRORLEVEL 1 echo Error: TestComboProvider failed && goto :failure
echo dotnet test ComboProvider.Tests\ComboProvider.Tests.fsproj -c %configuration% -v minimal -p:TestTargetFramework=netcoreapp3.1 -p:FSharpTestCompilerVersion=coreclr
......@@ -56,8 +56,8 @@ echo dotnet pack ComboProvider\ComboProvider.fsproj -o %~dp0artifacts -c %config
dotnet pack ComboProvider\ComboProvider.fsproj -o %~dp0artifacts -c %configuration% -v minimal -p:FSharpTestCompilerVersion=coreclr
if ERRORLEVEL 1 echo Error: TestComboProvider failed && goto :failure
echo dotnet test ComboProvider.Tests\ComboProvider.Tests.fsproj -c %configuration% -v minimal -p:TestTargetFramework=net461 -p:FSharpTestCompilerVersion=net40
dotnet test ComboProvider.Tests\ComboProvider.Tests.fsproj -c %configuration% -v minimal -p:TestTargetFramework=net461 -p:FSharpTestCompilerVersion=net40
echo dotnet test ComboProvider.Tests\ComboProvider.Tests.fsproj -c %configuration% -v minimal -p:TestTargetFramework=net472 -p:FSharpTestCompilerVersion=net40
dotnet test ComboProvider.Tests\ComboProvider.Tests.fsproj -c %configuration% -v minimal -p:TestTargetFramework=net472 -p:FSharpTestCompilerVersion=net40
if ERRORLEVEL 1 echo Error: TestComboProvider failed && goto :failure
echo dotnet test ComboProvider.Tests\ComboProvider.Tests.fsproj -v %configuration% -p:TestTargetFramework=netcoreapp3.1 -p:FSharpTestCompilerVersion=coreclr
......
<Project ToolsVersion="4.0" DefaultTargets="Test" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<!-- Verifies that in a non preview sdk it selects the recently built fsharp.core package -->
<PropertyGroup>
<_NETCoreSdkIsPreview>false</_NETCoreSdkIsPreview>
</PropertyGroup>
<Import Project="Test.props" />
<PropertyGroup>
<ExpectsValueTuple>false</ExpectsValueTuple>
<DisableImplicitSystemValueTupleReference>true</DisableImplicitSystemValueTupleReference>
<ExpectsFSharpCore>true</ExpectsFSharpCore>
<ExpectedFSharpCorePackageVersion>$(FSCorePackageVersion)</ExpectedFSharpCorePackageVersion>
</PropertyGroup>
<Import Project="Test.targets" />
</Project>
<Project ToolsVersion="4.0" DefaultTargets="Test" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<!-- Verifies that in an RTM sdk with the previewcheck disabled it selects the already RTM fsharp.core package -->
<PropertyGroup>
<_NETCoreSdkIsPreview>false</_NETCoreSdkIsPreview>
</PropertyGroup>
<Import Project="Test.props" />
<PropertyGroup>
<ExpectsValueTuple>false</ExpectsValueTuple>
<DisableImplicitSystemValueTupleReference>true</DisableImplicitSystemValueTupleReference>
<DisableFSharpCorePreviewCheck>true</DisableFSharpCorePreviewCheck>
<ExpectsFSharpCore>true</ExpectsFSharpCore>
<ExpectedFSharpCorePackageVersion>$(FSCorePackageVersion)</ExpectedFSharpCorePackageVersion>
</PropertyGroup>
<Import Project="Test.targets" />
</Project>
<Project ToolsVersion="4.0" DefaultTargets="Test" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<!-- Verifies that in an RTM sdk with the previewcheck enabled it selects the already shipped fsharp.core package -->
<PropertyGroup>
<_NETCoreSdkIsPreview>false</_NETCoreSdkIsPreview>
</PropertyGroup>
<Import Project="Test.props" />
<PropertyGroup>
<ExpectsValueTuple>false</ExpectsValueTuple>
<DisableImplicitSystemValueTupleReference>true</DisableImplicitSystemValueTupleReference>
<DisableFSharpCorePreviewCheck>false</DisableFSharpCorePreviewCheck>
<ExpectsFSharpCore>true</ExpectsFSharpCore>
<ExpectedFSharpCorePackageVersion>$(FSCorePackageVersion)</ExpectedFSharpCorePackageVersion>
</PropertyGroup>
<Import Project="Test.targets" />
</Project>
<Project ToolsVersion="4.0" DefaultTargets="Test" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Import Project="Test.props" />
<!-- if no FSharp.Core is specified, ensure the default is present -->
<!-- if no System.ValueTuple is specified, ensure the default is present -->
<!-- Verifies that in a preview sdk it selects the preview fsharp.core package -->
<PropertyGroup>
<ExpectsFSharpCore>true</ExpectsFSharpCore>
<ExpectedFSharpCorePackageVersion>$(DefaultFSharpCorePackageVersion)</ExpectedFSharpCorePackageVersion>
<_NETCoreSdkIsPreview>true</_NETCoreSdkIsPreview>
</PropertyGroup>
<ExpectsValueTuple>true</ExpectsValueTuple>
<ExpectedValueTuplePackageVersion>$(DefaultValueTuplePackageVersion)</ExpectedValueTuplePackageVersion>
<Import Project="Test.props" />
<PropertyGroup>
<ExpectsValueTuple>false</ExpectsValueTuple>
<DisableImplicitSystemValueTupleReference>true</DisableImplicitSystemValueTupleReference>
<ExpectsFSharpCore>true</ExpectsFSharpCore>
<ExpectedFSharpCorePackageVersion>$(FSharpCorePreviewPackageVersion)</ExpectedFSharpCorePackageVersion>
</PropertyGroup>
<Import Project="Test.targets" />
......
<Project ToolsVersion="4.0" DefaultTargets="Test" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<!-- Verifies that in a preview sdk with preview check disabled it selects the shipped fsharp.core package -->
<PropertyGroup>
<_NETCoreSdkIsPreview>true</_NETCoreSdkIsPreview>
</PropertyGroup>
<Import Project="Test.props" />
<PropertyGroup>
<ExpectsValueTuple>false</ExpectsValueTuple>
<DisableImplicitSystemValueTupleReference>true</DisableImplicitSystemValueTupleReference>
<DisableFSharpCorePreviewCheck>true</DisableFSharpCorePreviewCheck>
<ExpectsFSharpCore>true</ExpectsFSharpCore>
<ExpectedFSharpCorePackageVersion>$(FSharpCoreShippedPackageVersion)</ExpectedFSharpCorePackageVersion>
</PropertyGroup>
<Import Project="Test.targets" />
</Project>
<Project ToolsVersion="4.0" DefaultTargets="Test" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<!-- Verifies that in a preview sdk with preview check enabled it selects the preview fsharp.core package -->
<PropertyGroup>
<_NETCoreSdkIsPreview>true</_NETCoreSdkIsPreview>
</PropertyGroup>
<Import Project="Test.props" />
<PropertyGroup>
<ExpectsValueTuple>false</ExpectsValueTuple>
<DisableImplicitSystemValueTupleReference>true</DisableImplicitSystemValueTupleReference>
<DisableFSharpCorePreviewCheck>false</DisableFSharpCorePreviewCheck>
<ExpectsFSharpCore>true</ExpectsFSharpCore>
<ExpectedFSharpCorePackageVersion>$(FSharpCorePreviewPackageVersion)</ExpectedFSharpCorePackageVersion>
</PropertyGroup>
<Import Project="Test.targets" />
</Project>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<Import Project="$(MSBuildThisFileDirectory)..\..\..\..\eng\Versions.props" />
<PropertyGroup>
<TargetFramework Condition="'$(TargetFramework)' == ''">net472</TargetFramework>
<_TargetFrameworkVersionWithoutV Condition="'$(_TargetFrameworkVersionWithoutV)' == ''">4.7.2</_TargetFrameworkVersionWithoutV>
<TargetFrameworkIdentifier Condition="'$(TargetFrameworkIdentifier)' == ''">.NETFramework</TargetFrameworkIdentifier>
......
......@@ -32,6 +32,7 @@
<!-- validate the version of the listed System.ValueTuple -->
<Error Condition="'$(ExpectsValueTuple)' == 'true' and '%(FoundValueTuplePackages.Version)' != '$(ExpectedValueTuplePackageVersion)'" Text="Expected System.ValueTuple version $(ExpectedValueTuplePackageVersion) but found %(FoundValueTuplePackages.Version)." />
</Target>
</Project>
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>netstandard2.0</TargetFramework>
<FSharpCoreImplicitPackageVersion>4.6.*</FSharpCoreImplicitPackageVersion>
<FSharpCoreImplicitPackageVersion>4.5.*</FSharpCoreImplicitPackageVersion>
</PropertyGroup>
<ItemGroup>
<Compile Include="Library1.fs" />
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册