mirror of
https://github.com/chylex/.NET-Community-Toolkit.git
synced 2024-10-17 06:42:48 +02:00
41abf66445
- Add default Git attributes. - Update Git ignores to latest. - Merge duplicate EditorConfig rules. - Format projects to EditorConfig rules. - Fix formatting errors in 'Guard.md' file.
63 lines
3.4 KiB
XML
63 lines
3.4 KiB
XML
<Project Sdk="Microsoft.NET.Sdk">
|
|
|
|
<PropertyGroup>
|
|
<TargetFrameworks>netstandard2.0;netstandard2.1;net6.0</TargetFrameworks>
|
|
</PropertyGroup>
|
|
|
|
<PropertyGroup>
|
|
<Title>.NET Community Toolkit - MVVM</Title>
|
|
<Description>
|
|
This package includes a .NET MVVM library with helpers such as:
|
|
- ObservableObject: a base class for objects implementing the INotifyPropertyChanged interface.
|
|
- ObservableRecipient: a base class for observable objects with support for the IMessenger service.
|
|
- ObservableValidator: a base class for objects implementing the INotifyDataErrorInfo interface.
|
|
- RelayCommand: a simple delegate command implementing the ICommand interface.
|
|
- AsyncRelayCommand: a delegate command supporting asynchronous operations and cancellation.
|
|
- WeakReferenceMessenger: a messaging system to exchange messages through different loosely-coupled objects.
|
|
- StrongReferenceMessenger: a high-performance messaging system that trades weak references for speed.
|
|
- Ioc: a helper class to configure dependency injection service containers.
|
|
</Description>
|
|
<PackageTags>MVVM;Toolkit;MVVMToolkit;INotifyPropertyChanged;Observable;IOC;DI;Dependency Injection;Object Messaging;Extensions;Helpers</PackageTags>
|
|
</PropertyGroup>
|
|
|
|
<!-- .NET Standard 2.0 doesn't have the Span<T> and IAsyncEnumerable<T> types -->
|
|
<ItemGroup Condition="'$(TargetFramework)' == 'netstandard2.0'">
|
|
<PackageReference Include="Microsoft.Bcl.AsyncInterfaces" Version="6.0.0" />
|
|
<PackageReference Include="System.ComponentModel.Annotations" Version="5.0.0" />
|
|
<PackageReference Include="System.Memory" Version="4.5.5" />
|
|
<PackageReference Include="System.Runtime.CompilerServices.Unsafe" Version="6.0.0" />
|
|
</ItemGroup>
|
|
|
|
<!-- .NET Standard 2.1 doesn't have the Unsafe type -->
|
|
<ItemGroup Condition="'$(TargetFramework)' == 'netstandard2.1'">
|
|
<PackageReference Include="System.ComponentModel.Annotations" Version="5.0.0" />
|
|
<PackageReference Include="System.Runtime.CompilerServices.Unsafe" Version="6.0.0" />
|
|
</ItemGroup>
|
|
|
|
<!-- Enable trimming support on .NET 6 -->
|
|
<PropertyGroup Condition="'$(TargetFramework)' == 'net6.0'">
|
|
<EnableTrimAnalyzer>true</EnableTrimAnalyzer>
|
|
<IsTrimmable>true</IsTrimmable>
|
|
</PropertyGroup>
|
|
|
|
<!-- Source generator project reference for packing -->
|
|
<ItemGroup Condition="'$(TargetFramework)' == 'netstandard2.0'">
|
|
<ProjectReference Include="..\CommunityToolkit.Mvvm.SourceGenerators\CommunityToolkit.Mvvm.SourceGenerators.csproj" ReferenceOutputAssembly="false" />
|
|
</ItemGroup>
|
|
|
|
<ItemGroup Label="Package">
|
|
|
|
<!-- Include the custom .targets file to check the source generator (.NET 6 is not needed as it guarantees Roslyn 4.x) -->
|
|
<None Include="CommunityToolkit.Mvvm.targets" PackagePath="buildTransitive\netstandard2.0" Pack="true" />
|
|
<None Include="CommunityToolkit.Mvvm.targets" PackagePath="buildTransitive\netstandard2.1" Pack="true" />
|
|
<None Include="CommunityToolkit.Mvvm.targets" PackagePath="build\netstandard2.0" Pack="true" />
|
|
<None Include="CommunityToolkit.Mvvm.targets" PackagePath="build\netstandard2.1" Pack="true" />
|
|
|
|
<!-- Pack the source generator to the right package folder -->
|
|
<None Include="..\CommunityToolkit.Mvvm.SourceGenerators\bin\$(Configuration)\netstandard2.0\CommunityToolkit.Mvvm.SourceGenerators.dll"
|
|
PackagePath="analyzers\dotnet\roslyn4.0\cs"
|
|
Pack="true"
|
|
Visible="false" />
|
|
</ItemGroup>
|
|
|
|
</Project> |