From 7bd28e4eb1cb15c0e29167164b5f0c2c6eb4940d Mon Sep 17 00:00:00 2001 From: Sergio Pedri Date: Thu, 8 Sep 2022 02:15:41 +0200 Subject: [PATCH 1/4] Enable Roslyn multi-targeting in the MVVM Toolkit generator --- ...munityToolkit.Mvvm.SourceGenerators.csproj | 22 ++++++++++++++++++- .../CommunityToolkit.Mvvm.csproj | 20 +++++++++++------ 2 files changed, 34 insertions(+), 8 deletions(-) diff --git a/CommunityToolkit.Mvvm.SourceGenerators/CommunityToolkit.Mvvm.SourceGenerators.csproj b/CommunityToolkit.Mvvm.SourceGenerators/CommunityToolkit.Mvvm.SourceGenerators.csproj index f9e7f71c0..4ae1f4112 100644 --- a/CommunityToolkit.Mvvm.SourceGenerators/CommunityToolkit.Mvvm.SourceGenerators.csproj +++ b/CommunityToolkit.Mvvm.SourceGenerators/CommunityToolkit.Mvvm.SourceGenerators.csproj @@ -5,6 +5,26 @@ false + + + + + 4.0.1 + + + bin\$(Configuration)\roslyn$(MvvmToolkitSourceGeneratorRoslynVersion.Substring(0, 3)) + + + $(DefineConstants);ROSLYN_$(MvvmToolkitSourceGeneratorRoslynVersion.Substring(0, 3).Replace('.', '_')) + + @@ -32,7 +52,7 @@ - + diff --git a/CommunityToolkit.Mvvm/CommunityToolkit.Mvvm.csproj b/CommunityToolkit.Mvvm/CommunityToolkit.Mvvm.csproj index 2bfe1cdf1..e7fd2e6b9 100644 --- a/CommunityToolkit.Mvvm/CommunityToolkit.Mvvm.csproj +++ b/CommunityToolkit.Mvvm/CommunityToolkit.Mvvm.csproj @@ -40,9 +40,14 @@ true - + - + + MvvmToolkitSourceGeneratorRoslynVersion=4.0.1 + + + MvvmToolkitSourceGeneratorRoslynVersion=4.3.0 + @@ -53,11 +58,12 @@ - - + + + \ No newline at end of file From b661cb7f91a19806875a2801a7c72355748be0ed Mon Sep 17 00:00:00 2001 From: Sergio Pedri Date: Thu, 8 Sep 2022 02:28:24 +0200 Subject: [PATCH 2/4] Enable multi-targeting Roslyn for unit test projects --- .../CommunityToolkit.Mvvm.SourceGenerators.csproj | 2 +- .../CommunityToolkit.Mvvm.ExternalAssembly.csproj | 8 +++++++- ...tyToolkit.Mvvm.SourceGenerators.UnitTests.csproj | 10 ++++++++-- .../CommunityToolkit.Mvvm.UnitTests.csproj | 13 +++++++++++-- 4 files changed, 27 insertions(+), 6 deletions(-) diff --git a/CommunityToolkit.Mvvm.SourceGenerators/CommunityToolkit.Mvvm.SourceGenerators.csproj b/CommunityToolkit.Mvvm.SourceGenerators/CommunityToolkit.Mvvm.SourceGenerators.csproj index 4ae1f4112..03db2e91e 100644 --- a/CommunityToolkit.Mvvm.SourceGenerators/CommunityToolkit.Mvvm.SourceGenerators.csproj +++ b/CommunityToolkit.Mvvm.SourceGenerators/CommunityToolkit.Mvvm.SourceGenerators.csproj @@ -19,7 +19,7 @@ 4.0.1 - bin\$(Configuration)\roslyn$(MvvmToolkitSourceGeneratorRoslynVersion.Substring(0, 3)) + bin\$(Configuration)\roslyn$(MvvmToolkitSourceGeneratorRoslynVersion.Substring(0, 3))\ $(DefineConstants);ROSLYN_$(MvvmToolkitSourceGeneratorRoslynVersion.Substring(0, 3).Replace('.', '_')) diff --git a/tests/CommunityToolkit.Mvvm.ExternalAssembly/CommunityToolkit.Mvvm.ExternalAssembly.csproj b/tests/CommunityToolkit.Mvvm.ExternalAssembly/CommunityToolkit.Mvvm.ExternalAssembly.csproj index d0d39011b..d2a95ec41 100644 --- a/tests/CommunityToolkit.Mvvm.ExternalAssembly/CommunityToolkit.Mvvm.ExternalAssembly.csproj +++ b/tests/CommunityToolkit.Mvvm.ExternalAssembly/CommunityToolkit.Mvvm.ExternalAssembly.csproj @@ -12,9 +12,15 @@ $(NoWarn);CS8002;SA0001 + + + 4.3.0 + - + + MvvmToolkitSourceGeneratorRoslynVersion=$(MvvmToolkitSourceGeneratorRoslynVersion) + \ No newline at end of file diff --git a/tests/CommunityToolkit.Mvvm.SourceGenerators.UnitTests/CommunityToolkit.Mvvm.SourceGenerators.UnitTests.csproj b/tests/CommunityToolkit.Mvvm.SourceGenerators.UnitTests/CommunityToolkit.Mvvm.SourceGenerators.UnitTests.csproj index c0e0b2a21..eba05a8ab 100644 --- a/tests/CommunityToolkit.Mvvm.SourceGenerators.UnitTests/CommunityToolkit.Mvvm.SourceGenerators.UnitTests.csproj +++ b/tests/CommunityToolkit.Mvvm.SourceGenerators.UnitTests/CommunityToolkit.Mvvm.SourceGenerators.UnitTests.csproj @@ -1,4 +1,4 @@ - + net472;netcoreapp3.1;net6.0 @@ -11,9 +11,15 @@ + + + 4.3.0 + - + + MvvmToolkitSourceGeneratorRoslynVersion=$(MvvmToolkitSourceGeneratorRoslynVersion) + \ No newline at end of file diff --git a/tests/CommunityToolkit.Mvvm.UnitTests/CommunityToolkit.Mvvm.UnitTests.csproj b/tests/CommunityToolkit.Mvvm.UnitTests/CommunityToolkit.Mvvm.UnitTests.csproj index fff3b5625..d033b5323 100644 --- a/tests/CommunityToolkit.Mvvm.UnitTests/CommunityToolkit.Mvvm.UnitTests.csproj +++ b/tests/CommunityToolkit.Mvvm.UnitTests/CommunityToolkit.Mvvm.UnitTests.csproj @@ -12,9 +12,18 @@ - - + + + 4.3.0 + + + + + MvvmToolkitSourceGeneratorRoslynVersion=$(MvvmToolkitSourceGeneratorRoslynVersion) + + + \ No newline at end of file From 514710b1119c4c8a55e20be0770363aae8eb3225 Mon Sep 17 00:00:00 2001 From: Sergio Pedri Date: Thu, 8 Sep 2022 02:28:35 +0200 Subject: [PATCH 3/4] Run multi-targeted Roslyn projects in CI --- azure-pipelines.yml | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/azure-pipelines.yml b/azure-pipelines.yml index 3287eb2df..3259edb40 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -46,6 +46,14 @@ jobs: - script: dotnet test -c Release -f net6.0 -l "trx;LogFileName=VSTestResults_net6.0.trx" displayName: Run .NET 6 unit tests + # Run the .NET 6 MVVM Toolkit tests targeting Roslyn 4.0.1 + - script: dotnet test tests\CommunityToolkit.Mvvm.UnitTests\CommunityToolkit.Mvvm.UnitTests.csproj -c Release -f net6.0 -l "trx;LogFileName=VSTestResults_net6.0_mvvmtoolkit_roslyn401.trx" + displayName: Run CommunityToolkit.Mvvm.UnitTests unit tests with Roslyn 4.0.1 + + # Run the .NET 6 MVVM Toolkit source generator tests targeting Roslyn 4.0.1 + - script: dotnet test tests\CommunityToolkit.Mvvm.SourceGenerators.UnitTests\CommunityToolkit.Mvvm.SourceGenerators.UnitTests.csproj -c Release -f net6.0 -l "trx;LogFileName=VSTestResults_net6.0_mvvmtoolkit_generators_roslyn401.trx" + displayName: Run CommunityToolkit.Mvvm.UnitTests unit tests with Roslyn 4.0.1 + # Run .NET Core 3.1 tests - script: dotnet test -c Release -f netcoreapp3.1 -l "trx;LogFileName=VSTestResults_netcoreapp3.1.trx" displayName: Run .NET Core 3.1 unit tests From f577ec03478e7884debb9b1e581b6eba230c1d9f Mon Sep 17 00:00:00 2001 From: Sergio Pedri Date: Thu, 8 Sep 2022 19:28:20 +0200 Subject: [PATCH 4/4] Only set OutputPath in generators during packing --- .../CommunityToolkit.Mvvm.SourceGenerators.csproj | 7 +++++-- CommunityToolkit.Mvvm/CommunityToolkit.Mvvm.csproj | 4 ++-- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/CommunityToolkit.Mvvm.SourceGenerators/CommunityToolkit.Mvvm.SourceGenerators.csproj b/CommunityToolkit.Mvvm.SourceGenerators/CommunityToolkit.Mvvm.SourceGenerators.csproj index 03db2e91e..18e81311f 100644 --- a/CommunityToolkit.Mvvm.SourceGenerators/CommunityToolkit.Mvvm.SourceGenerators.csproj +++ b/CommunityToolkit.Mvvm.SourceGenerators/CommunityToolkit.Mvvm.SourceGenerators.csproj @@ -18,8 +18,11 @@ 4.0.1 - - bin\$(Configuration)\roslyn$(MvvmToolkitSourceGeneratorRoslynVersion.Substring(0, 3))\ + + bin\$(Configuration)\roslyn$(MvvmToolkitSourceGeneratorRoslynVersion.Substring(0, 3))\ $(DefineConstants);ROSLYN_$(MvvmToolkitSourceGeneratorRoslynVersion.Substring(0, 3).Replace('.', '_')) diff --git a/CommunityToolkit.Mvvm/CommunityToolkit.Mvvm.csproj b/CommunityToolkit.Mvvm/CommunityToolkit.Mvvm.csproj index e7fd2e6b9..2160f590d 100644 --- a/CommunityToolkit.Mvvm/CommunityToolkit.Mvvm.csproj +++ b/CommunityToolkit.Mvvm/CommunityToolkit.Mvvm.csproj @@ -43,10 +43,10 @@ - MvvmToolkitSourceGeneratorRoslynVersion=4.0.1 + MvvmToolkitSourceGeneratorRoslynVersion=4.0.1;MvvmToolkitIsGeneratingNuGetPackage=true - MvvmToolkitSourceGeneratorRoslynVersion=4.3.0 + MvvmToolkitSourceGeneratorRoslynVersion=4.3.0;MvvmToolkitIsGeneratingNuGetPackage=true