You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
NuGet has two installable packages in Visual Studio. Microsoft.VisualStudio.NuGet.BuildTools and Microsoft.VisualStudio.NuGet.Core. The NuGet.BuildTools pacakge is intended to be installed with the Visual Studio Build Tools SKU (no UI, used on CI build machines), while the NuGet.Core package is intended to be installed with the Visual Studio IDE. The NuGet.Core VS package contains all the same dlls that the NuGet.BuildTools VS package contains, plus everything else needed for VS integration.
A recent change to the VS installer now prevents multiple packages writing the same file, so will fail if both NuGet VS packages are selected to install. Note: A VS installer component is something that appears in the installer as something with a checkbox that can be selected or unselected. A component has a list of dependencies of packages or package groups. A VS package is what contains dlls to be installed. A package group is also a list of dependencies, like a component, but is not selectable. Dependencies can have when conditions, for example depend on one package for some skus, depend on a different package for different skus.
To fix this, we will create a Microsoft.VisualStudio.PackageGroup.NuGet package group that will select the correct package to install depending on which VS SKU is installed. Also modify the existing VS components (things selectable in the installer) to use the package group, rather than the packages directly. This allows customers to install either or both NuGet components without issue.
Note to Visual Studio extension authors
If you have a dependency on the Microsoft.VisualStudio.NuGet.BuildTools or Microsoft.VisualStudio.NuGet.Corepackage, you need to change your dependency to Microsoft.VisualStudio.PackageGroup.NuGet. However, if your dependency is on the component, it can stay as it is.
The text was updated successfully, but these errors were encountered:
rrelyea
changed the title
Create NuGet package group for VS installer
Create NuGet package group for VS installer - fixing some VSIX setup problems
Jul 11, 2019
NuGet has two installable packages in Visual Studio.
Microsoft.VisualStudio.NuGet.BuildTools
andMicrosoft.VisualStudio.NuGet.Core
. TheNuGet.BuildTools
pacakge is intended to be installed with the Visual Studio Build Tools SKU (no UI, used on CI build machines), while theNuGet.Core
package is intended to be installed with the Visual Studio IDE. TheNuGet.Core
VS package contains all the same dlls that theNuGet.BuildTools
VS package contains, plus everything else needed for VS integration.A recent change to the VS installer now prevents multiple packages writing the same file, so will fail if both NuGet VS packages are selected to install. Note: A VS installer component is something that appears in the installer as something with a checkbox that can be selected or unselected. A component has a list of dependencies of packages or package groups. A VS package is what contains dlls to be installed. A package group is also a list of dependencies, like a component, but is not selectable. Dependencies can have when conditions, for example depend on one package for some skus, depend on a different package for different skus.
To fix this, we will create a
Microsoft.VisualStudio.PackageGroup.NuGet
package group that will select the correct package to install depending on which VS SKU is installed. Also modify the existing VS components (things selectable in the installer) to use the package group, rather than the packages directly. This allows customers to install either or both NuGet components without issue.Note to Visual Studio extension authors
If you have a dependency on the
Microsoft.VisualStudio.NuGet.BuildTools
orMicrosoft.VisualStudio.NuGet.Core
package, you need to change your dependency toMicrosoft.VisualStudio.PackageGroup.NuGet
. However, if your dependency is on the component, it can stay as it is.The text was updated successfully, but these errors were encountered: