dotnet / NuGet.BuildTasks

The build tasks used to pick up package content from project.lock.json.
MIT License
45 stars 61 forks source link

add C++ Project and C++ ARM/ARM64 Desktop application PackageReference support #67

Closed mingkuang-Chuyu closed 2 years ago

mingkuang-Chuyu commented 4 years ago

Home issue

https://github.com/NuGet/Home/issues/8874

As we all know, packages.xml easily leads to wasted space and a large number of IO copy operations. So I hope that nuget can support VC++ to support PackageReference style.

New features

  1. add C++ Project PackageReference style restore support.
  2. add C++ ARM/ARM64 Desktop application support.
  3. add C++ Project TargetFramework support.
mingkuang-Chuyu commented 4 years ago

targetFramework matching order

  (vs2019)
native v14.20.27508, 14.21.27702, 14.22.27905, 14.23.28105 ...
       |
  (vs2017)
native v14.10.25017, 14.11.25503, 14.12.25827, 14.13.26128 ...
      |
  (vs2015)            (vs2013)       (vs2012)          (vs2010)      (vs2008)
native v14.0      native v12.0     native v11.0    native v10.0    native v9.0
       ╲                    ╲           |             ╱               ╱
                                    native v0.0 

For example, if the following 2 paths exist in a package:

If we use the v142 toolset (14.23.28105 vs2019), then build\native14.20\Test.Static.targets will insert * .nuget.g.targets.

If we use the v141 toolset (14.13.26128 vs2017), then build\native14.0\Test.Static.targets will insert * .nuget.g.targets.

MiYanni commented 3 years ago

@mingkuang-Chuyu Are these changes still needed? This PR has been open for a while.

Nirmal4G commented 3 years ago

@MiYanni 2 years is too much to say "… for a while."! 😂

Also, I think PackageReference support is being added from VS16.8 or is in the works and is slated for completion by VS17 release.

In fact, I do want to know what's the current status!!

nkolev92 commented 2 years ago

C++/CLI .NET Core are the only types slated to get PackageReference support: https://github.com/NuGet/Home/issues/8195

C++ native is something not planned right now: Voicing your concern here is the right approach: https://developercommunity.visualstudio.com/t/use-packagereference-in-vcxproj/351636.

I can't really make that decision myself. Refer to any updates in that issue.

MiYanni commented 2 years ago

Based on the discussion, I believe the best course of action at the moment is to close this PR. It sounds like the best place to help out is by following the links that @nkolev92 provided. If these changes could be utilized in the future, the PR can be reopened at any time.

mingkuang-Chuyu commented 2 years ago

@MiYanni I hope to merge as soon as possible. Your(MS) work efficiency is very high!

levicki commented 2 years ago

Is there any ETA on this feature? It is sorely needed.