Repository navigation
Port projects from pkgproj to dotnet pack #53202
Copy link
Copy link
Closed
Milestone
Description
steps to port projects
Steps to start porting projects
- Remove PkgProj folder
- set
<IsPackable>true</IsPackable>for src proj - Move the PackageDescription from the project's Directory.Build.props file into the csproj.
- Run the pack command
Examine the package
- use /p:GenerateCompatibilitySuppressionFile=true to generate suppressions file. Examine the suppresions before automatically suppressing them.
- https://github.com/Anipik/PackagePortTester to validate the new and old packages are same
- if there are any extra dependencies, see if the dependency is actuall needed. If not, remove it or add a condition so that it doesn't apply to the TargetFramework. If the ProjectReference is to an inbox framework assembly that does not have a package add
PrivateAssets="all"to theProjectReference. - if there are missing references for a compatible framework, add the project reference and a comment explaining why.
- Removing placeholder frameworks is fine. Do not remove placeholder files though (ie Xamarin).
- For any extra files compaterror, analyserfiles you will have to hook up to the new pack command (support added for analyzers, & compat errors)
- Add git diffs to the pr for reviewers.
Following is the list of packages that need to be ported to dotnet pack task
- Microsoft.AspNetCore.Internal.Transport Convert AspNetCore transport pkgproj to Pack task #56674
- Microsoft.Bcl.AsyncInterfaces: Replace all remaining pkgprojs with NuGet Pack task #56712
- Microsoft.Diagnostics.Tracing.EventSource.Redist: Replace all remaining pkgprojs with NuGet Pack task #56712
- Microsoft.IO.Redist: Replace all remaining pkgprojs with NuGet Pack task #56712
- Microsoft.Win32.Registry.AccessControl: Replace all remaining pkgprojs with NuGet Pack task #56712
- Microsoft.Win32.SystemEvents: Replace all remaining pkgprojs with NuGet Pack task #56712
- Microsoft.Windows.Compatibility Move Windows Compat pack to NuGet pack task #56686
- Microsoft.XmlSerializer.Generator: Replace all remaining pkgprojs with NuGet Pack task #56712
- System.CodeDom: Replace all remaining pkgprojs with NuGet Pack task #56712
- System.Collections.Immutable: Replace all remaining pkgprojs with NuGet Pack task #56712
- System.ComponentModel.Composition: Replace all remaining pkgprojs with NuGet Pack task #56712
- System.ComponentModel.Composition.Registration: Replace all remaining pkgprojs with NuGet Pack task #56712
- System.Composition: Replace Composition* pkgprojs with NuGet Pack task #55208
- System.Composition.AttributedModel: Replace Composition* pkgprojs with NuGet Pack task #55208
- System.Composition.Convention: Replace Composition* pkgprojs with NuGet Pack task #55208
- System.Composition.Hosting: Replace Composition* pkgprojs with NuGet Pack task #55208
- System.Composition.Runtime: Replace Composition* pkgprojs with NuGet Pack task #55208
- System.Composition.TypedParts: Replace Composition* pkgprojs with NuGet Pack task #55208
- System.Configuration.ConfigurationManager: Replace all remaining pkgprojs with NuGet Pack task #56712
- System.Data.Odbc: Replace all remaining pkgprojs with NuGet Pack task #56712
- System.Data.OleDb: Replace all remaining pkgprojs with NuGet Pack task #56712
- System.Diagnostics.EventLog: Replace all remaining pkgprojs with NuGet Pack task #56712
- System.Diagnostics.DiagnosticSource: Replace all remaining pkgprojs with NuGet Pack task #56712
- System.Diagnostics.PerformanceCounter
- System.DirectoryServices: Replace all remaining pkgprojs with NuGet Pack task #56712
- System.DirectoryServices.AccountManagement: Replace all remaining pkgprojs with NuGet Pack task #56712
- System.DirectoryServices.Protocols: Replace all remaining pkgprojs with NuGet Pack task #56712
- System.Drawing.Common: Replace all remaining pkgprojs with NuGet Pack task #56712
- System.Formats.Asn1: Replace all remaining pkgprojs with NuGet Pack task #56712
- System.Formats.Cbor: Replace all remaining pkgprojs with NuGet Pack task #56712
- System.IO.Packaging: Replace all remaining pkgprojs with NuGet Pack task #56712
- System.IO.Pipelines: Replace all remaining pkgprojs with NuGet Pack task #56712
- System.IO.Ports: Replace all remaining pkgprojs with NuGet Pack task #56712
- System.Management: Replace all remaining pkgprojs with NuGet Pack task #56712
- System.Memory.Data: Replace all remaining pkgprojs with NuGet Pack task #56712
- System.Net.Http.Json: Replace all remaining pkgprojs with NuGet Pack task #56712
- System.Net.Http.WinHttpHandler: Replace all remaining pkgprojs with NuGet Pack task #56712
- System.Numerics.Tensors: Replace all remaining pkgprojs with NuGet Pack task #56712
- System.Reflection.Context: Replace all remaining pkgprojs with NuGet Pack task #56712
- System.Reflection.Metadata: Replace all remaining pkgprojs with NuGet Pack task #56712
- System.Reflection.MetadataLoadContext: Replace all remaining pkgprojs with NuGet Pack task #56712
- System.Resources.Extensions: Replace all remaining pkgprojs with NuGet Pack task #56712
- System.Runtime.Caching: Replace all remaining pkgprojs with NuGet Pack task #56712
- System.Runtime.CompilerServices.Unsafe: Replace all remaining pkgprojs with NuGet Pack task #56712
- System.Security.Cryptography.Pkcs: Replace all remaining pkgprojs with NuGet Pack task #56712
- System.Security.Cryptography.ProtectedData: Replace all remaining pkgprojs with NuGet Pack task #56712
- System.Security.Cryptography.Xml: Replace all remaining pkgprojs with NuGet Pack task #56712
- System.Security.Permissions: Replace all remaining pkgprojs with NuGet Pack task #56712
- System.ServiceModel.Syndication: Replace all remaining pkgprojs with NuGet Pack task #56712
- System.ServiceProcess.ServiceController: Replace all remaining pkgprojs with NuGet Pack task #56712
- System.Speech: Replace all remaining pkgprojs with NuGet Pack task #56712
- System.Text.Encoding.CodePages: Replace all remaining pkgprojs with NuGet Pack task #56712
- System.Text.Encodings.Web: Replace all remaining pkgprojs with NuGet Pack task #56712
- System.Text.Json: Replace all remaining pkgprojs with NuGet Pack task #56712
- System.Threading.AccessControl: Replace all remaining pkgprojs with NuGet Pack task #56712
- System.Threading.Channels: Replace all remaining pkgprojs with NuGet Pack task #56712
- System.Threading.Tasks.Dataflow: Replace all remaining pkgprojs with NuGet Pack task #56712
- System.Windows.Extensions
Reactions are currently unavailable
Activity
ViktorHofer commentedon Jun 23, 2021
The System.Composition* projects should already be portable today as they neither have reference assemblies nor runtime assets.
ViktorHofer commentedon Jun 23, 2021
Also I just removed the few packages from the list that were dead-ended with 663c40d
ericstj commentedon Jun 23, 2021
Is there any ordering requirement for these, or can we just port them at will?
ViktorHofer commentedon Jun 23, 2021
nit: this list is incomplete, it's missing the
Microsoft.Private.CoreFx.OOB, theMicrosoft.Windows.Compatibilityand theruntime.native.System.IO.Portslibraries on the libraries side.Apart from that, we should also try to get the runtime and host pkgprojs migrated to be able to remove our usage of
Microsoft.DotNet.Build.Tasks.Packagingentirely. Those are simple "here are files, please pack them up" projects and could be worked on in parallel to the libraries packages.Anipik commentedon Jul 4, 2021
we have added the required infra and we have some example prs as well. we can start trimming this list down.