123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131 |
- <Project>
- <PropertyGroup>
- <Copyright>Copyright (c) .NET Foundation and Contributors.</Copyright>
- <MinClientVersion>2.12</MinClientVersion>
- <GenerateDocumentationFile>true</GenerateDocumentationFile>
- <Authors>.NET Foundation and Contributors</Authors>
- <PackageIcon>icon.png</PackageIcon>
- <PackageProjectUrl>https://github.com/dotnet/reactive</PackageProjectUrl>
- <PackageLicenseExpression>MIT</PackageLicenseExpression>
- <SignAssembly>true</SignAssembly>
- <AssemblyOriginatorKeyFile>$(MSBuildThisFileDirectory)ReactiveX.snk</AssemblyOriginatorKeyFile>
- <NoWarn>$(NoWarn);1701;1702;CS1591;NU5105</NoWarn>
- <DefaultLanguage>en-US</DefaultLanguage>
- <IncludeSymbols>false</IncludeSymbols>
- <IsTestProject>$(MSBuildProjectName.Contains('Tests'))</IsTestProject>
- <GeneratePackageOnBuild Condition=" '$(IsTestProject)' != 'true' and '$(CreatePackage)' == 'true' ">true</GeneratePackageOnBuild>
- <PackageOutputPath>$(MSBuildThisFileDirectory)artifacts</PackageOutputPath>
- <EmbedUntrackedSources>true</EmbedUntrackedSources>
- <PublishRepositoryUrl>true</PublishRepositoryUrl>
- <LangVersion>latest</LangVersion>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)' != 'Debug'">
- <IncludeSymbols>true</IncludeSymbols>
- <SymbolPackageFormat>snupkg</SymbolPackageFormat>
- </PropertyGroup>
- <PropertyGroup Condition="'$(TF_BUILD)' == 'true'">
- <ContinuousIntegrationBuild>true</ContinuousIntegrationBuild>
- </PropertyGroup>
- <ItemGroup>
- <PackageReference Include="Microsoft.SourceLink.GitHub" Version="1.1.1" PrivateAssets="All"/>
-
- <!--
- Nerdbank.GitVersioning 3.6.128 injects a reference to a .proj file that doesn't work inside the
- UWP test runner project. We don't ship that as a NuGet package, so it doesn't matter what its
- version number is.
- -->
- <PackageReference
- Include="Nerdbank.GitVersioning"
- Version="3.8.118"
- PrivateAssets="all"
- Condition="$(ProjectName) != 'Tests.System.Reactive.Uwp.DeviceRunner'" />
- </ItemGroup>
- <ItemGroup>
- <None Include="$(MSBuildThisFileDirectory)../Resources/Artwork/Logo.png" Pack="true" PackagePath="\icon.png"/>
- </ItemGroup>
- <ItemGroup Condition="'$(IsTestProject)' == 'true'">
- <PackageReference Include="coverlet.collector" Version="6.0.4" />
- </ItemGroup>
- <PropertyGroup Condition="'$(TargetFramework)'=='uap10.0.18362'">
- <!--
- See 0003-uap-targets.md ADR in documentation for the reasons behind these settings.
- -->
- <NoStdLib>True</NoStdLib>
- <TargetPlatformMinVersion>10.0.18362</TargetPlatformMinVersion>
- <TargetPlatformVersion>10.0.18362.0</TargetPlatformVersion>
- <TargetPlatformIdentifier>UAP</TargetPlatformIdentifier>
- <TargetFrameworkMoniker>.NETCore,Version=v5.0</TargetFrameworkMoniker>
- <TargetFrameworkIdentifier>.NETCore</TargetFrameworkIdentifier>
- <TargetFrameworkVersion>v5.0</TargetFrameworkVersion>
- <NugetTargetMoniker>UAP,Version=v10.0</NugetTargetMoniker>
- <DefineConstants>$(DefineConstants);WINDOWS_UWP</DefineConstants>
- <!-- At some point, it looks like a fully-qualified version number stopped resolving the TargetPlatformSdkPath
- and now it only works with 10.0, so the SDK no longer sets this for us in UAP targets. -->
- <TargetPlatformSdkPath Condition="'$(TargetPlatformSdkPath)' == ''">$([Microsoft.Build.Utilities.ToolLocationHelper]::GetPlatformSDKLocation('Windows', '10.0'))</TargetPlatformSdkPath>
- </PropertyGroup>
- <PropertyGroup>
- <AnalysisLevelDesign>7.0-default</AnalysisLevelDesign>
- <AnalysisLevelNaming>7.0-all</AnalysisLevelNaming>
- <AnalysisLevelPerformance>7.0-all</AnalysisLevelPerformance>
- <!-- Enable analyzers on older targets. -->
- <EnableNETAnalyzers>true</EnableNETAnalyzers>
- <!--
- Disabled diagnostics:
- CA1001 - types holding disposable fields should implement IDisposable. See next item.
- CA2213 - IDisposable types should Dispose any IDisposable fields. This rule finds over 600
- examples! These are all in subtle multithreaded or async code. Some of them appear
- not to be real problems. For example, there are places where schedulers retain
- references to IDisposable work items, but that IDisposable interfaces is only there
- to enable application code to cancel scheduled work, so it's not Rx's place to call
- Dispose. And there are more subtle cases where disposal is deferred to give threads
- a chance to shut down. Each of these likely needs individual review:
- https://github.com/dotnet/reactive/issues/1927
- IDE0028 - Suggests Collection expressions in place of construction, e.g. replaces new List<int>(x)
- [.. x]. To me, this is less readable, and it doesn't improve performance, as far as we know.
- Annoyingly, we don't seem to be able to configure this to apply only when it would not
- introduce a spread.
- IDE0056 - Use of index/range syntax - relevant types not available on all targets, so we can't
- IDE0057 do this.
- IDE0130 - Namespace does not match folder structure. Conforming to this would be a significant
- upheaval, and it's not clear that it would be an improvement.
- IDE0290 - Primary ctors. This diagnostic suggests them in a lot of places where we don't want
- them. E.g., in most types with multiple constructors I find I prefer not to have
- a primary ctor. Since this is all or nothing, we turn it off.
- IDE0305 - Suggests Collection expressions in place of .ToArray. E.g, wants to change this:
- _readyList.ToArray()
- to this:
- [.. readyList]
- This won't improve performance as far as we know (sometimes a reason for using that
- syntax), and it's not obviously an improvement in readability.
- IDE0306 - Suggests Collection expressions in place of construction, e.g. replaces new List<int>(x)
- [.. x]. To me, this is less readable, and it doesn't improve performance, as far as we know.
- CA1510 - use ArgumentNullException.ThrowIf (not available on all targets)
- CA1513 - use ObjectDisposedException.ThrowIf (not available on all targets)
- -->
- <NoWarn>$(NoWarn);CA1001;CA2213;CA1510;CA1513;IDE0028;IDE0056;IDE0057;IDE0130;IDE0290;IDE0305;IDE0306</NoWarn>
- </PropertyGroup>
- <ItemGroup>
- <GlobalAnalyzerConfigFiles Include="$(MSBuildThisFileDirectory)analyzers.globalconfig" />
- </ItemGroup>
- </Project>
|