瀏覽代碼

Split refs from project tfms

Oren Novotny 7 年之前
父節點
當前提交
0252fb537c

+ 2 - 0
.gitignore

@@ -16,6 +16,8 @@ local.properties
 .settings/
 .loadpath
 
+*.binlog
+
 # External tool builders
 .externalToolBuilders/
 

+ 16 - 1
Ix.NET/Source/Directory.build.targets

@@ -20,5 +20,20 @@
   <PropertyGroup Condition="'$(TargetFramework)' == 'net46'">
     <DefineConstants>$(DefineConstants);HAS_APTCA;DESKTOPCLR;DESKTOPCLR46;SIGNED</DefineConstants>
   </PropertyGroup>
-  
+
+
+  <Target Name="GetRefsWithoutLib" BeforeTargets="_GetPackageFiles" Condition="'$(RefTargetFrameworks)' != '' and Exists('$(MSBuildThisFileDirectory)refs\$(MSBuildProjectName)\$(MSBuildProjectName).csproj') ">
+    <ItemGroup>
+      <_RefTargetFrameworks Include="$(RefTargetFrameworks.Split(';'))" />
+    </ItemGroup>
+    <MSBuild Projects="$(MSBuildThisFileDirectory)refs\$(MSBuildProjectName)\$(MSBuildProjectName).csproj" Targets="_GetReferenceAssemblies" Properties="TargetFramework=%(_RefTargetFrameworks.Identity)">
+
+      <Output TaskParameter="TargetOutputs" ItemName="_refAssms" />
+    </MSBuild>
+
+    <ItemGroup>
+      <None Include="@(_refAssms)" PackagePath="ref/%(_refAssms.TargetFramework)" Pack="true" />
+    </ItemGroup>
+
+  </Target>
 </Project>

+ 3 - 0
Ix.NET/Source/Ix.NET.sln

@@ -29,6 +29,9 @@ EndProject
 Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Interactive.Async.Tests", "System.Interactive.Async.Tests\System.Interactive.Async.Tests.csproj", "{172BD8C4-5C3E-4928-9D3F-746CF336FFEC}"
 EndProject
 Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Refs", "Refs", "{A3D72E6E-4ADA-42E0-8B2A-055B1F244281}"
+	ProjectSection(SolutionItems) = preProject
+		refs\Directory.build.props = refs\Directory.build.props
+	EndProjectSection
 EndProject
 Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Interactive", "refs\System.Interactive\System.Interactive.csproj", "{2EC0C302-B029-4DDB-AC91-000BF11006AD}"
 EndProject

+ 1 - 28
Ix.NET/Source/System.Interactive.Providers/System.Interactive.Providers.csproj

@@ -4,6 +4,7 @@
     <Description>Interactive Extensions Providers Library used to build query providers and express queries over enumerable sequences.</Description>
     <AssemblyTitle>Interactive Extensions - Providers Library</AssemblyTitle>
     <TargetFrameworks>net45;netstandard1.0;netstandard2.0</TargetFrameworks>
+    <RefTargetFrameworks>netstandard1.0;netcoreapp2.0;netstandard2.1</RefTargetFrameworks>
     <PackageTags>Ix;Interactive;Extensions;Enumerable</PackageTags>
   </PropertyGroup>
 
@@ -19,32 +20,4 @@
     <PackageReference Include="System.Linq.Queryable" Version="4.3.0" />
   </ItemGroup>
 
-  <PropertyGroup>
-    <TargetsForTfmSpecificContentInPackage>$(TargetsForTfmSpecificContentInPackage);GetRefs</TargetsForTfmSpecificContentInPackage>
-  </PropertyGroup>
-
-
-  <Target Name="GetRefs">
-
-    <MSBuild Projects="..\refs\System.Interactive\System.Interactive.csproj" Targets="_GetReferenceAssemblies" Properties="TargetFramework=$(TargetFramework)">
-
-      <Output TaskParameter="TargetOutputs" ItemName="_refAssms" />
-    </MSBuild>
-
-    <ItemGroup>
-      <TfmSpecificPackageFile Include="@(_refAssms)" PackagePath="ref/$(TargetFramework)" />
-    </ItemGroup>
-  </Target>
-
-  <Target Name="GetRefsWithoutLib" BeforeTargets="_GetPackageFiles">
-    <MSBuild Projects="..\refs\System.Interactive.Providers\System.Interactive.Providers.csproj" Targets="_GetReferenceAssemblies" Properties="TargetFramework=netcoreapp2.0">
-
-      <Output TaskParameter="TargetOutputs" ItemName="_refAssms20" />
-    </MSBuild>
-
-    <ItemGroup>
-      <None Include="@(_refAssms20)" PackagePath="ref/netcoreapp2.0" Pack="true" />
-    </ItemGroup>
-
-  </Target>
 </Project>

+ 1 - 30
Ix.NET/Source/System.Interactive/System.Interactive.csproj

@@ -5,6 +5,7 @@
     <AssemblyTitle>Interactive Extensions - Main Library</AssemblyTitle>
     <Authors>Microsoft</Authors>
     <TargetFrameworks>net45;netstandard1.0;netstandard2.0</TargetFrameworks>
+    <RefTargetFrameworks>netstandard1.0;netcoreapp2.0;netstandard2.1</RefTargetFrameworks>
     <PackageTags>Ix;Interactive;Extensions;Enumerable</PackageTags>
   </PropertyGroup>
 
@@ -12,37 +13,7 @@
     <EmbeddedResource Include="Properties\System.Interactive.rd.xml" />
   </ItemGroup>
 
-  <PropertyGroup>
-    <TargetsForTfmSpecificContentInPackage>$(TargetsForTfmSpecificContentInPackage);GetRefs</TargetsForTfmSpecificContentInPackage>
-  </PropertyGroup>
-
-
-  <Target Name="GetRefs">
-
-    <MSBuild Projects="..\refs\System.Interactive\System.Interactive.csproj" 
-             Targets="_GetReferenceAssemblies" 
-             Properties="TargetFramework=$(TargetFramework)">
-
-      <Output TaskParameter="TargetOutputs" ItemName="_refAssms" />
-    </MSBuild>
-
-    <ItemGroup>
-      <TfmSpecificPackageFile Include="@(_refAssms)" PackagePath="ref/$(TargetFramework)" />
-    </ItemGroup>
-  </Target>
-
-  <Target Name="GetRefsWithoutLib" BeforeTargets="_GetPackageFiles">
-    <MSBuild Projects="..\refs\System.Interactive\System.Interactive.csproj"
-             Targets="_GetReferenceAssemblies"
-             Properties="TargetFramework=netcoreapp2.0">
-
-      <Output TaskParameter="TargetOutputs" ItemName="_refAssms20" />
-    </MSBuild>
 
-    <ItemGroup>
-      <None Include="@(_refAssms20)" PackagePath="ref/netcoreapp2.0" Pack="true" />
-    </ItemGroup>
 
-  </Target>
   
 </Project>

+ 4 - 2
Ix.NET/Source/refs/Directory.build.props

@@ -3,6 +3,8 @@
   <Import Project="..\Directory.Build.props" />
   
   <PropertyGroup>
+    <!-- This is here so we can create a fake .NET Standard 2.1 facade -->
+    <NETStandardMaximumVersion>2.1</NETStandardMaximumVersion>
     <DefineConstants>$(DefineConstants);REF_ASSM</DefineConstants>
     <ProduceReferenceAssembly>true</ProduceReferenceAssembly>
     <Deterministic>true</Deterministic>
@@ -11,8 +13,8 @@
 
   <Target Name="_GetReferenceAssemblies" DependsOnTargets="Build" Returns="@(ReferenceAssembliesOutput)">
     <ItemGroup>
-      <ReferenceAssembliesOutput Include="@(IntermediateRefAssembly->'%(FullPath)')" />
-      <ReferenceAssembliesOutput Include="@(DocumentationProjectOutputGroupOutput->'%(FullPath)')" />
+      <ReferenceAssembliesOutput Include="@(IntermediateRefAssembly->'%(FullPath)')" TargetFramework="$(TargetFramework)" />
+      <ReferenceAssembliesOutput Include="@(DocumentationProjectOutputGroupOutput->'%(FullPath)')" TargetFramework="$(TargetFramework)" />
     </ItemGroup>
   </Target>
   

+ 1 - 1
Ix.NET/Source/refs/System.Interactive.Providers/System.Interactive.Providers.csproj

@@ -3,7 +3,7 @@
   <PropertyGroup>
     <Description>Interactive Extensions Providers Library used to build query providers and express queries over enumerable sequences.</Description>
     <AssemblyTitle>Interactive Extensions - Providers Library</AssemblyTitle>
-    <TargetFrameworks>net45;netstandard1.0;netstandard2.0;netcoreapp2.0</TargetFrameworks>
+    <TargetFrameworks>net45;netstandard1.0;netstandard2.0;netcoreapp2.0;netstandard2.1</TargetFrameworks>
     <PackageTags>Ix;Interactive;Extensions;Enumerable</PackageTags>
   </PropertyGroup>
 

+ 1 - 1
Ix.NET/Source/refs/System.Interactive/System.Interactive.csproj

@@ -4,7 +4,7 @@
     <Description>Interactive Extensions Main Library used to express queries over enumerable sequences.</Description>
     <AssemblyTitle>Interactive Extensions - Main Library</AssemblyTitle>
     <Authors>Microsoft</Authors>
-    <TargetFrameworks>net45;netstandard1.0;netstandard2.0;netcoreapp2.0</TargetFrameworks>
+    <TargetFrameworks>net45;netstandard1.0;netstandard2.0;netcoreapp2.0;netstandard2.1</TargetFrameworks>
     <PackageTags>Ix;Interactive;Extensions;Enumerable</PackageTags>
   </PropertyGroup>