Skip to content

Commit 79c1fc0

Browse files
committed
Rearrange MSBuild logic in project files
Follow the following rules: - SOF (_Start Of File_) Imports, - Core properties, Package properties, build properties, - Build items, Resource items, Content items, Misc. items, - In-place Imports, Choose (_elements within follows outer sort order_) - `ProjectReference` items, `PackageReference` items, - Targets and Properties and Items close to said Targets, - EOF (_End Of File_) Imports. Where there's a condition by target properties, we should group them together under `Choose`. For multiple target values, we should sort them by the order in which they are defined. And the order in which they should be defined is either ascending or descending in terms of compatibility layering.
1 parent 6c80440 commit 79c1fc0

File tree

16 files changed

+111
-98
lines changed

16 files changed

+111
-98
lines changed

CommunityToolkit.Common/CommunityToolkit.Common.csproj

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,8 +14,10 @@
1414
<PackageTags>Incremental;Loading;Collection;IncrementalLoadingCollection;String;Array;Extensions;Helpers</PackageTags>
1515
</PropertyGroup>
1616

17-
<!-- .NET Standard 2.1 and .NET 6 already have [NotNullIfNotNull] and [NotNullWhen].
18-
Additionally, also enable trimming support on .NET 6. -->
17+
<!--
18+
.NET Standard 2.1 and .NET 6 already have [NotNullIfNotNull] and [NotNullWhen].
19+
Additionally, also enable trimming support on .NET 6.
20+
-->
1921
<PropertyGroup Condition="'$(TargetFramework)' == 'net6.0'">
2022
<DefineConstants>NETSTANDARD2_1_OR_GREATER</DefineConstants>
2123
<EnableTrimAnalyzer>true</EnableTrimAnalyzer>

CommunityToolkit.Diagnostics/CommunityToolkit.Diagnostics.csproj

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,11 @@
4444
</When>
4545
</Choose>
4646

47+
<!-- T4 service used by the Guard APIs -->
48+
<ItemGroup>
49+
<Service Include="{508349b6-6b84-4df5-91f0-309beebad82d}" />
50+
</ItemGroup>
51+
4752
<ItemGroup>
4853
<None Update="Generated\Guard.Comparable.Numeric.tt">
4954
<Generator>TextTemplatingFileGenerator</Generator>
@@ -63,11 +68,6 @@
6368
</None>
6469
</ItemGroup>
6570

66-
<!-- T4 service used by the Guard APIs -->
67-
<ItemGroup>
68-
<Service Include="{508349b6-6b84-4df5-91f0-309beebad82d}" />
69-
</ItemGroup>
70-
7171
<ItemGroup>
7272
<Compile Update="Generated\Guard.Comparable.Numeric.g.cs">
7373
<DesignTime>True</DesignTime>

CommunityToolkit.HighPerformance/CommunityToolkit.HighPerformance.csproj

Lines changed: 12 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -45,17 +45,6 @@
4545
</ItemGroup>
4646
</When>
4747

48-
<When Condition="'$(TargetFramework)' == 'net6.0'">
49-
50-
<!-- NETSTANDARD2_1_OR_GREATER: includes both .NET Standard 2.1, .NET Core 3.1 and .NET 6.
51-
Additionally, also enable trimming support on .NET 6. -->
52-
<PropertyGroup>
53-
<DefineConstants>NETSTANDARD2_1_OR_GREATER</DefineConstants>
54-
<EnableTrimAnalyzer>true</EnableTrimAnalyzer>
55-
<IsTrimmable>true</IsTrimmable>
56-
</PropertyGroup>
57-
</When>
58-
5948
<When Condition="'$(TargetFramework)' == 'netcoreapp3.1'">
6049
<PropertyGroup>
6150
<DefineConstants>NETSTANDARD2_1_OR_GREATER</DefineConstants>
@@ -66,6 +55,18 @@
6655
<PackageReference Include="System.Runtime.CompilerServices.Unsafe" Version="6.0.0" />
6756
</ItemGroup>
6857
</When>
58+
59+
<!--
60+
NETSTANDARD2_1_OR_GREATER: includes both .NET Standard 2.1, .NET Core 3.1 and .NET 6.
61+
Additionally, also enable trimming support on .NET 6.
62+
-->
63+
<When Condition="'$(TargetFramework)' == 'net6.0'">
64+
<PropertyGroup>
65+
<DefineConstants>NETSTANDARD2_1_OR_GREATER</DefineConstants>
66+
<EnableTrimAnalyzer>true</EnableTrimAnalyzer>
67+
<IsTrimmable>true</IsTrimmable>
68+
</PropertyGroup>
69+
</When>
6970
</Choose>
7071

7172
</Project>

CommunityToolkit.Mvvm.SourceGenerators/CommunityToolkit.Mvvm.SourceGenerators.csproj

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
<Project Sdk="Microsoft.NET.Sdk">
22

33
<PropertyGroup>
4-
<TargetFramework>netstandard2.0</TargetFramework>
54
<IsPackable>false</IsPackable>
5+
<TargetFramework>netstandard2.0</TargetFramework>
66
</PropertyGroup>
77

88
<!--
@@ -14,16 +14,16 @@
1414
it multiple times with multiple versions during packing, to then extract each .dll and copy it to the right NuGet package folder.
1515
-->
1616
<PropertyGroup>
17-
17+
1818
<!-- When the property is not set (which will not happen when creating a NuGet package anyway), just default to 4.0.1 -->
1919
<MvvmToolkitSourceGeneratorRoslynVersion Condition="'$(MvvmToolkitSourceGeneratorRoslynVersion)' == ''">4.0.1</MvvmToolkitSourceGeneratorRoslynVersion>
20-
20+
2121
<!--
2222
The output path will end up being eg. "bin\Debug\roslyn4.0\netstandard2.0" (the trailing "netstandard2.0" is added automatically).
2323
This is only set when $(MvvmToolkitIsGeneratingNuGetPackage) is set (when packing CommunityToolkit.Mvvm). This avoids unit test issues.
2424
-->
2525
<OutputPath Condition="'$(MvvmToolkitIsGeneratingNuGetPackage)' == 'true'">bin\$(Configuration)\roslyn$(MvvmToolkitSourceGeneratorRoslynVersion.Substring(0, 3))\</OutputPath>
26-
26+
2727
<!-- Also define a "ROSLYN_<MAJOR>_<MINOR>" build constant, so the generator code can multi-target whenever needed and add any required polyfills -->
2828
<DefineConstants>$(DefineConstants);ROSLYN_$(MvvmToolkitSourceGeneratorRoslynVersion.Substring(0, 3).Replace('.', '_'))</DefineConstants>
2929
</PropertyGroup>
@@ -55,12 +55,12 @@
5555
</ItemGroup>
5656

5757
<ItemGroup>
58-
<PackageReference Include="Microsoft.CodeAnalysis.CSharp" Version="$(MvvmToolkitSourceGeneratorRoslynVersion)" PrivateAssets="all" Pack="false" />
58+
<AdditionalFiles Include="AnalyzerReleases.Shipped.md" />
59+
<AdditionalFiles Include="AnalyzerReleases.Unshipped.md" />
5960
</ItemGroup>
6061

6162
<ItemGroup>
62-
<AdditionalFiles Include="AnalyzerReleases.Shipped.md" />
63-
<AdditionalFiles Include="AnalyzerReleases.Unshipped.md" />
63+
<PackageReference Include="Microsoft.CodeAnalysis.CSharp" Version="$(MvvmToolkitSourceGeneratorRoslynVersion)" PrivateAssets="All" Pack="false" />
6464
</ItemGroup>
6565

6666
</Project>

CommunityToolkit.Mvvm/CommunityToolkit.Mvvm.csproj

Lines changed: 20 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,23 @@
2020
<PackageTags>MVVM;Toolkit;MVVMToolkit;INotifyPropertyChanged;Observable;IOC;DI;Dependency Injection;Object Messaging;Extensions;Helpers</PackageTags>
2121
</PropertyGroup>
2222

23+
<!-- Enable trimming support on .NET 6 -->
24+
<PropertyGroup Condition="'$(TargetFramework)' == 'net6.0'">
25+
<EnableTrimAnalyzer>true</EnableTrimAnalyzer>
26+
<IsTrimmable>true</IsTrimmable>
27+
</PropertyGroup>
28+
29+
<!--
30+
Include the custom .targets file to check the source generator.
31+
.NET 6 is not needed as it guarantees Roslyn 4.x.
32+
-->
33+
<ItemGroup>
34+
<None Include="CommunityToolkit.Mvvm.targets" Pack="True" PackagePath="build\netstandard2.0" />
35+
<None Include="CommunityToolkit.Mvvm.targets" Pack="True" PackagePath="build\netstandard2.1" />
36+
<None Include="CommunityToolkit.Mvvm.targets" Pack="True" PackagePath="buildTransitive\netstandard2.0" />
37+
<None Include="CommunityToolkit.Mvvm.targets" Pack="True" PackagePath="buildTransitive\netstandard2.1" />
38+
</ItemGroup>
39+
2340
<!-- .NET Standard 2.0 doesn't have the Span<T> and IAsyncEnumerable<T> types -->
2441
<ItemGroup Condition="'$(TargetFramework)' == 'netstandard2.0'">
2542
<PackageReference Include="Microsoft.Bcl.AsyncInterfaces" Version="6.0.0" />
@@ -34,12 +51,6 @@
3451
<PackageReference Include="System.Runtime.CompilerServices.Unsafe" Version="6.0.0" />
3552
</ItemGroup>
3653

37-
<!-- Enable trimming support on .NET 6 -->
38-
<PropertyGroup Condition="'$(TargetFramework)' == 'net6.0'">
39-
<EnableTrimAnalyzer>true</EnableTrimAnalyzer>
40-
<IsTrimmable>true</IsTrimmable>
41-
</PropertyGroup>
42-
4354
<!-- Reference the various multi-targeted versions of the source generator project (one per Roslyn version) -->
4455
<ItemGroup Condition="'$(TargetFramework)' == 'netstandard2.0'">
4556
<ProjectReference Include="..\CommunityToolkit.Mvvm.SourceGenerators\CommunityToolkit.Mvvm.SourceGenerators.csproj" ReferenceOutputAssembly="false">
@@ -50,18 +61,11 @@
5061
</ProjectReference>
5162
</ItemGroup>
5263

53-
<ItemGroup Label="Package">
54-
55-
<!-- Include the custom .targets file to check the source generator (.NET 6 is not needed as it guarantees Roslyn 4.x) -->
56-
<None Include="CommunityToolkit.Mvvm.targets" PackagePath="buildTransitive\netstandard2.0" Pack="true" />
57-
<None Include="CommunityToolkit.Mvvm.targets" PackagePath="buildTransitive\netstandard2.1" Pack="true" />
58-
<None Include="CommunityToolkit.Mvvm.targets" PackagePath="build\netstandard2.0" Pack="true" />
59-
<None Include="CommunityToolkit.Mvvm.targets" PackagePath="build\netstandard2.1" Pack="true" />
60-
61-
<!--
64+
<!--
6265
Pack the source generator to the right package folders (each matching the target Roslyn version).
6366
Roslyn will automatically load the highest version compatible with Roslyn's version in the SDK.
64-
-->
67+
-->
68+
<ItemGroup>
6569
<None Include="..\CommunityToolkit.Mvvm.SourceGenerators\bin\$(Configuration)\roslyn4.0\netstandard2.0\CommunityToolkit.Mvvm.SourceGenerators.dll" PackagePath="analyzers\dotnet\roslyn4.0\cs" Pack="true" Visible="false" />
6670
<None Include="..\CommunityToolkit.Mvvm.SourceGenerators\bin\$(Configuration)\roslyn4.3\netstandard2.0\CommunityToolkit.Mvvm.SourceGenerators.dll" PackagePath="analyzers\dotnet\roslyn4.3\cs" Pack="true" Visible="false" />
6771
</ItemGroup>

CommunityToolkit.Mvvm/CommunityToolkit.Mvvm.targets

Lines changed: 11 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -13,16 +13,17 @@
1313
AfterTargets="ResolvePackageDependenciesForBuild;ResolveNuGetPackageAssets"
1414
DependsOnTargets="MVVMToolkitGatherAnalyzers">
1515

16-
<!-- Use the CSharpCoreTargetsPath property to find the version of the compiler we are using. This is the same mechanism
17-
MSBuild uses to find the compiler. We could check the assembly version for any compiler assembly (since they all have
18-
the same version) but Microsoft.Build.Tasks.CodeAnalysis.dll is where MSBuild loads the compiler tasks from so if
19-
someone is getting creative with msbuild tasks/targets this is the "most correct" assembly to check. -->
16+
<!--
17+
Use the CSharpCoreTargetsPath property to find the version of the compiler we are using. This is the same mechanism
18+
MSBuild uses to find the compiler. We could check the assembly version for any compiler assembly (since they all have
19+
the same version) but Microsoft.Build.Tasks.CodeAnalysis.dll is where MSBuild loads the compiler tasks from so if
20+
someone is getting creative with msbuild tasks/targets this is the "most correct" assembly to check.
21+
-->
2022
<GetAssemblyIdentity AssemblyFiles="$([System.IO.Path]::Combine(`$([System.IO.Path]::GetDirectoryName($(CSharpCoreTargetsPath)))`,`Microsoft.Build.Tasks.CodeAnalysis.dll`))">
2123
<Output TaskParameter="Assemblies" ItemName="MVVMToolkitCurrentCompilerAssemblyIdentity"/>
2224
</GetAssemblyIdentity>
2325

2426
<PropertyGroup>
25-
2627
<!-- Transform the resulting item from GetAssemblyIdentity into a property representing its assembly version -->
2728
<MVVMToolkitCurrentCompilerVersion>@(MVVMToolkitCurrentCompilerAssemblyIdentity->'%(Version)')</MVVMToolkitCurrentCompilerVersion>
2829

@@ -35,9 +36,11 @@
3536
<Analyzer Remove="@(MVVMToolkitAnalyzer)"/>
3637
</ItemGroup>
3738

38-
<!-- If the source generators are disabled, also emit a warning. This would've been produced by MSBuild itself as well, but
39-
emitting this manually lets us customize the message to inform developers as to why exactly the generators have been
40-
disabled, and that the rest of the MVVM Toolkit will still keep working as intended, just without additional features. -->
39+
<!--
40+
If the source generators are disabled, also emit a warning. This would've been produced by MSBuild itself as well, but
41+
emitting this manually lets us customize the message to inform developers as to why exactly the generators have been
42+
disabled, and that the rest of the MVVM Toolkit will still keep working as intended, just without additional features.
43+
-->
4144
<Warning Condition ="'$(MVVMToolkitCurrentCompilerVersionIsNotNewEnough)' == 'true'" Text="The MVVM Toolkit source generators have been disabled on the current configuration, as they need Roslyn 4.x in order to work. The MVVM Toolkit will work just fine, but features relying on the source generators will not be available."/>
4245
</Target>
4346

build/Community.Toolkit.Common.props

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,9 +15,9 @@
1515
</PropertyGroup>
1616

1717
<PropertyGroup>
18-
<AllowUnsafeBlocks>true</AllowUnsafeBlocks>
18+
<Nullable>Enable</Nullable>
1919
<LangVersion>10.0</LangVersion>
20-
<Nullable>enable</Nullable>
20+
<AllowUnsafeBlocks>true</AllowUnsafeBlocks>
2121
</PropertyGroup>
2222

2323
<PropertyGroup>

build/Community.Toolkit.Common.targets

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -12,9 +12,9 @@
1212
</PropertyGroup>
1313

1414
<ItemGroup Condition="$(IsPackable)">
15-
<None Include="$(BuildToolsDirectory)nuget.png" Pack="true" PackagePath="\Icon.png" Visible="False" />
16-
<None Include="$(RepositoryDirectory)License.md" Pack="true" PackagePath="\" Visible="False" />
17-
<None Include="$(RepositoryDirectory)ThirdPartyNotices.txt" Pack="true" PackagePath="\" Visible="False" />
15+
<None Pack="true" PackagePath="\" Visible="False" Include="$(BuildToolsDirectory)Icon.png" />
16+
<None Pack="true" PackagePath="\" Visible="False" Include="$(RepositoryDirectory)License.md" />
17+
<None Pack="true" PackagePath="\" Visible="False" Include="$(RepositoryDirectory)ThirdPartyNotices.txt" />
1818
</ItemGroup>
1919

2020
</Project>

tests/CommunityToolkit.Common.UnitTests/CommunityToolkit.Common.UnitTests.csproj

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,13 +5,13 @@
55
</PropertyGroup>
66

77
<ItemGroup>
8-
<PackageReference Include="MSTest.TestAdapter" Version="2.2.8" />
9-
<PackageReference Include="MSTest.TestFramework" Version="2.2.8" />
10-
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.0.0" />
8+
<ProjectReference Include="..\..\CommunityToolkit.Common\CommunityToolkit.Common.csproj" />
119
</ItemGroup>
1210

1311
<ItemGroup>
14-
<ProjectReference Include="..\..\CommunityToolkit.Common\CommunityToolkit.Common.csproj" />
12+
<PackageReference Include="MSTest.TestAdapter" Version="2.2.8" />
13+
<PackageReference Include="MSTest.TestFramework" Version="2.2.8" />
14+
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.0.0" />
1515
</ItemGroup>
1616

1717
</Project>

tests/CommunityToolkit.Diagnostics.UnitTests/CommunityToolkit.Diagnostics.UnitTests.csproj

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,13 +5,13 @@
55
</PropertyGroup>
66

77
<ItemGroup>
8-
<PackageReference Include="MSTest.TestAdapter" Version="2.2.8" />
9-
<PackageReference Include="MSTest.TestFramework" Version="2.2.8" />
10-
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.0.0" />
8+
<ProjectReference Include="..\..\CommunityToolkit.Diagnostics\CommunityToolkit.Diagnostics.csproj" />
119
</ItemGroup>
1210

1311
<ItemGroup>
14-
<ProjectReference Include="..\..\CommunityToolkit.Diagnostics\CommunityToolkit.Diagnostics.csproj" />
12+
<PackageReference Include="MSTest.TestAdapter" Version="2.2.8" />
13+
<PackageReference Include="MSTest.TestFramework" Version="2.2.8" />
14+
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.0.0" />
1515
</ItemGroup>
1616

1717
</Project>

tests/CommunityToolkit.HighPerformance.UnitTests/CommunityToolkit.HighPerformance.UnitTests.csproj

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
<Project Sdk="Microsoft.NET.Sdk">
22

33
<PropertyGroup>
4-
<TargetFrameworks>net472;netcoreapp3.1;net6.0</TargetFrameworks>
54
<EnablePreviewFeatures>true</EnablePreviewFeatures>
5+
<TargetFrameworks>net472;netcoreapp3.1;net6.0</TargetFrameworks>
66
</PropertyGroup>
77

88
<ItemGroup>

tests/CommunityToolkit.Mvvm.DisableINotifyPropertyChanging.UnitTests/CommunityToolkit.Mvvm.DisableINotifyPropertyChanging.UnitTests.csproj

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -5,14 +5,15 @@
55
</PropertyGroup>
66

77
<ItemGroup>
8-
<PackageReference Include="MSTest.TestAdapter" Version="2.2.8" />
9-
<PackageReference Include="MSTest.TestFramework" Version="2.2.8" />
10-
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.0.0" />
8+
<ProjectReference Include="..\..\CommunityToolkit.Mvvm\CommunityToolkit.Mvvm.csproj" />
9+
<ProjectReference Include="..\..\CommunityToolkit.Mvvm.SourceGenerators\CommunityToolkit.Mvvm.SourceGenerators.csproj"
10+
OutputItemType="Analyzer" ReferenceOutputAssembly="false" PrivateAssets="build;contentFiles" />
1111
</ItemGroup>
1212

1313
<ItemGroup>
14-
<ProjectReference Include="..\..\CommunityToolkit.Mvvm\CommunityToolkit.Mvvm.csproj" />
15-
<ProjectReference Include="..\..\CommunityToolkit.Mvvm.SourceGenerators\CommunityToolkit.Mvvm.SourceGenerators.csproj" OutputItemType="Analyzer" ReferenceOutputAssembly="false" PrivateAssets="contentfiles;build" />
14+
<PackageReference Include="MSTest.TestAdapter" Version="2.2.8" />
15+
<PackageReference Include="MSTest.TestFramework" Version="2.2.8" />
16+
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.0.0" />
1617
</ItemGroup>
1718

1819
</Project>

tests/CommunityToolkit.Mvvm.ExternalAssembly/CommunityToolkit.Mvvm.ExternalAssembly.csproj

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,21 +4,24 @@
44
<TargetFramework>netstandard2.0</TargetFramework>
55
</PropertyGroup>
66

7-
<!-- Manually apply the properties of test projects to this assembly as well,
8-
which is neither a test project not one of the libraries to pack for NuGet. -->
7+
<!--
8+
Manually apply the properties of test projects to this assembly as well,
9+
which is neither a test project not one of the libraries to pack for NuGet.
10+
-->
911
<PropertyGroup>
1012
<IsPackable>false</IsPackable>
1113
<IsPublishable>false</IsPublishable>
1214
<NoWarn>$(NoWarn);CS8002;SA0001</NoWarn>
1315
</PropertyGroup>
1416

15-
<!-- See comments in CommunityToolkit.MvvmUnitTests -->
17+
<!-- See comments in CommunityToolkit.Mvvm.UnitTests project -->
1618
<PropertyGroup>
1719
<MvvmToolkitSourceGeneratorRoslynVersion Condition="'$(MvvmToolkitSourceGeneratorRoslynVersion)' == ''">4.3.0</MvvmToolkitSourceGeneratorRoslynVersion>
1820
</PropertyGroup>
21+
1922
<ItemGroup>
2023
<ProjectReference Include="..\..\CommunityToolkit.Mvvm\CommunityToolkit.Mvvm.csproj" />
21-
<ProjectReference Include="..\..\CommunityToolkit.Mvvm.SourceGenerators\CommunityToolkit.Mvvm.SourceGenerators.csproj" OutputItemType="Analyzer" ReferenceOutputAssembly="false" PrivateAssets="contentfiles;build">
24+
<ProjectReference Include="..\..\CommunityToolkit.Mvvm.SourceGenerators\CommunityToolkit.Mvvm.SourceGenerators.csproj" OutputItemType="Analyzer" ReferenceOutputAssembly="false" PrivateAssets="contentFiles;build">
2225
<Properties>MvvmToolkitSourceGeneratorRoslynVersion=$(MvvmToolkitSourceGeneratorRoslynVersion)</Properties>
2326
</ProjectReference>
2427
</ItemGroup>

tests/CommunityToolkit.Mvvm.Internals.UnitTests/CommunityToolkit.Mvvm.Internals.UnitTests.csproj

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,13 +5,13 @@
55
</PropertyGroup>
66

77
<ItemGroup>
8-
<PackageReference Include="MSTest.TestAdapter" Version="2.2.8" />
9-
<PackageReference Include="MSTest.TestFramework" Version="2.2.8" />
10-
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.0.0" />
8+
<ProjectReference Include="..\..\CommunityToolkit.Mvvm\CommunityToolkit.Mvvm.csproj" />
119
</ItemGroup>
1210

1311
<ItemGroup>
14-
<ProjectReference Include="..\..\CommunityToolkit.Mvvm\CommunityToolkit.Mvvm.csproj" />
12+
<PackageReference Include="MSTest.TestAdapter" Version="2.2.8" />
13+
<PackageReference Include="MSTest.TestFramework" Version="2.2.8" />
14+
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.0.0" />
1515
</ItemGroup>
1616

1717
</Project>

0 commit comments

Comments
 (0)