Description
Status: In Progress
Issue to track new feature work around enabling packages.config (PC) to PackageReference (PR) upgrader workflow.
Here is the link to the spec.
Feel free to comment below with your feedback.
Related issues
Overall Issue Description:
- After enabling PackageReference support for projects, some packages may not install or work correctly #4942 After enabling PackageReference support for projects, some packages may not install or work correctly
Likely Project System Issues
-
contentFiles under "any" folder doesn't work with PackageReference-style with classic csproj dotnet/project-system#3042 - ContentFiles "Any" folder issue with classic csproj
-
Show contentFiles from nuget packages in legacy project system dotnet/project-system#3431 Display ContentFiles in Legacy PR
-
Enable EmbedInteropTypes for PackageReference (matching Packages.Config capability) #2365 - Some assemblies in NuGet packages should be linked, not referenced (Pertains to interop assemblies and the knowledge of whether an assembly needs to be referenced. Lost when moved to the transitive world)
-
Linking embedded interops in package reference dotnet/project-system#2859 - Project System side ASK for embedded interops
-
PP transforms - supported, but csproj.dll issue (link?) (see related Fix 4.3 regression - Placeholders $product$ and $AssemblyGuid$ not replaced in contentfile through transformation #5880)
-
ContentFiles doesn't work with legacy PackageReference. Some issues in NuGet but also needs to coordinate with Project System as well. (ContentFiles are not added as link items in standard PackageReference #5958 PP file output is not generated during the build in classic c# project dotnet/project-system#2861)
-
CPS projects can't handle contentFiles from separate packages using the same file name. (CPS projects can't handle contentFiles from separate packages using the same file name #5048)
-
https://devdiv.visualstudio.com/DevDiv/NuGet/_workitems/edit/567298 - Wildcard support in legacy project systemWon't fix. -
Internal bug 465204 - NuGet Build Tasks don’t put proper metadata on satellite assemblies (potentially a restore issue)
NuGet Migration Issues:
- Come up with a strategy for packages that have install.ps1/uninstall.ps1 #5963 Come up with a strategy for packages that have install.ps1/uninstall.ps1 .
- Xdt Transforms support in Package Reference #5954 XDT Transforms don't work for transitive restore
- NuGet.Config RepositoryPath controls Solution package directory for PC users. PR doesn't have a Solution package directory. (RestorePackagesPath can set the location of UserPackageFolder that is used by PC and PR codepaths) - No fix. Everything goes to the global packages folder.
- In order to pack normal PackageRef projects, you need to add a PR to NuGet.Build.Tasks.Pack, but there are still gaps (includereferencedprojects) - at that point, dotnet.exe pack will work, but nuget.exe pack won't. Related - bucket for major pack related issues #6285
- EntityFramework story - Entity Framework Pack Ref migration story #5974 & Optimize EF6 to work with PackageReference and no app.config dotnet/ef6#189
- what data should we collect to ensure we learn and adapt (this needs more thought)
- Update Package Reference Support documentation #6009 - Update documentation for package reference
NuGet PC to PR Migration Tool Issues
- Provide migration tool to move from packages.config project to packagereference #5488 - Provide migration tool to move from packages.config project to packagereference
- Add support for solution level PC -> PR migration #5879 - Add support for solution level PC -> PR migration
- Ensure the user understands changes made for them (and give them options to tweak our behavior if necessary???)
- P0 - enable project level migration (which needs to be able to walk up towards the root, changing each to PR.
Changes to NuGet PM UI to adapt to transitive: - Transitive dependency management, list transitive package in a flatlist - PackRef does not show transitive dependencies - install tab & update tab behavior? #5887
- Rework the UI - Improve the PC->PR Migrator UI #6530
VS Extensibility Team Issues
- VS SDK project support : NuGet packages referenced via PackageReference don't include DLLs in VSIX #5899
C++ Team Issues
- Find bug to link Internal C++ bug# 188588
WPF Project Compat Issues:
- PackageReference broken in WPF projects due to tmp_proj not importing Package-supplied build authoring #5894 - PackageReference broken in WPF projects due to tmp_proj not importing Package-supplied build authoring
Clean up our own Repro to remove the need for install.ps1
- Update NuGet.VisualStudio for PackageReference projects #5414 - Update NuGet.VisualStudio for PackageReference projects
- Understand proper design/needs for bootstrapping scenarios #5971 Enable the build bootstrapping scenario which is supported by PC today. See configure.ps1 in NuGet repo. (dotnet install tool foo.bar -- may help solve this)
Work with package owners (see related item# #5960)
- Analyze how many packages have install/uninstall.ps1 and analyze the impact this change would have.
- Analyze contentfiles vs content packages - CPS projects can't handle contentFiles from separate packages using the same file name #5048
- Analyze lib/foo.dll packages
- Consider removing the extensibility that allows other package managers to be shown as compatible #6623 Jquery/Bower + Alternative Package Manager Providers
Validation to improve ecosystem for new push/ingested packages
- once we clean up, how do we keep it clean? Validation at pack/push/ingest time?
Package Reference experience issues
- Install/Uninstall operations from PMC do not refresh PM UI for legacy project system #5939 - Install/Uninstall operations from PMC do not refresh PM UI for legacy project system
- Improve PackageReference support in old project system dotnet/project-system#2129 - Improve PackageReference support in old project system - $(MyVersion) in version string.
- Microsoft.NuGet.targets refers to project.json for PackageReference projects #4778 Error experience with unavailable frameworks, PR.
- extern alias support for NuGet package references #4989 - Documentation issue.
- PackageRef project opt-in technique #4488 - PackageRef project opt-in technique
- Allow format selection during the first package installation #8980 Allow project format selection dialog should be enabled by default.