diff options
author | Matt Ward <matt.ward@microsoft.com> | 2019-06-04 12:13:52 +0300 |
---|---|---|
committer | Matt Ward <matt.ward@microsoft.com> | 2019-08-07 11:16:08 +0300 |
commit | dbf513652a19625b3acfc1625d0398f5b9f51090 (patch) | |
tree | 68563fd30f2fbcf1180b56a242d7e43abe05d187 /main/tests/test-projects | |
parent | b695858f9bac9d31e581ff76ecc0fb317e6498d5 (diff) |
[Ide] Support multi-target framework projects in type system
Each target framework results in a Roslyn Project being created
with the references and source files specific to that target
framework.
The project info cache generates a separate cache file for each
target framework.
Running MSBuild targets now support the configuration having a
target framework. This was to avoid having to add a new framework
parameter to several project system methods. The implementation
involves a custom configuration selector - a possible improvement
here would be to have these framework aware configurations
available from the Project itself - the current custom selector
implementation seems a little clumsy.
Project references on the Roslyn Project are not currently
multi-target framework aware.
Fixes VSTS #572311 - Multi-framework support in Roslyn workspace
Diffstat (limited to 'main/tests/test-projects')
4 files changed, 41 insertions, 0 deletions
diff --git a/main/tests/test-projects/multi-target-netframework/MyClass-netframework.cs b/main/tests/test-projects/multi-target-netframework/MyClass-netframework.cs new file mode 100755 index 0000000000..2e091cdafd --- /dev/null +++ b/main/tests/test-projects/multi-target-netframework/MyClass-netframework.cs @@ -0,0 +1,5 @@ +using System;
+
+class MyClass
+{
+}
\ No newline at end of file diff --git a/main/tests/test-projects/multi-target-netframework/MyClass-netstandard.cs b/main/tests/test-projects/multi-target-netframework/MyClass-netstandard.cs new file mode 100755 index 0000000000..2e091cdafd --- /dev/null +++ b/main/tests/test-projects/multi-target-netframework/MyClass-netstandard.cs @@ -0,0 +1,5 @@ +using System;
+
+class MyClass
+{
+}
\ No newline at end of file diff --git a/main/tests/test-projects/multi-target-netframework/multi-target.csproj b/main/tests/test-projects/multi-target-netframework/multi-target.csproj new file mode 100644 index 0000000000..5382a32895 --- /dev/null +++ b/main/tests/test-projects/multi-target-netframework/multi-target.csproj @@ -0,0 +1,14 @@ +<Project Sdk="Microsoft.NET.Sdk"> + <PropertyGroup> + <OutputType>Exe</OutputType> + <TargetFrameworks>net472;netstandard1.0</TargetFrameworks> + </PropertyGroup> + + <ItemGroup Condition="'$(TargetFramework)' == 'net472'"> + <Compile Remove="MyClass-netstandard.cs" /> + </ItemGroup> + + <ItemGroup Condition="'$(TargetFramework)' == 'netstandard1.0'"> + <Compile Remove="MyClass-netframework.cs" /> + </ItemGroup> +</Project> diff --git a/main/tests/test-projects/multi-target-netframework/multi-target.sln b/main/tests/test-projects/multi-target-netframework/multi-target.sln new file mode 100644 index 0000000000..9cb6a5b6a4 --- /dev/null +++ b/main/tests/test-projects/multi-target-netframework/multi-target.sln @@ -0,0 +1,17 @@ +
+Microsoft Visual Studio Solution File, Format Version 12.00
+# Visual Studio 15
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "multi-target", "multi-target.csproj", "{5B443F8D-6C84-443F-A395-5429E8F4A47D}"
+EndProject
+Global
+ GlobalSection(SolutionConfigurationPlatforms) = preSolution
+ Debug|Any CPU = Debug|Any CPU
+ Release|Any CPU = Release|Any CPU
+ EndGlobalSection
+ GlobalSection(ProjectConfigurationPlatforms) = postSolution
+ {5B443F8D-6C84-443F-A395-5429E8F4A47D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {5B443F8D-6C84-443F-A395-5429E8F4A47D}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {5B443F8D-6C84-443F-A395-5429E8F4A47D}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {5B443F8D-6C84-443F-A395-5429E8F4A47D}.Release|Any CPU.Build.0 = Release|Any CPU
+ EndGlobalSection
+EndGlobal
|