Visual studio 将程序集安装到特殊文件夹,如NuGet软件包中的VS PrivateAssembly

Visual studio 将程序集安装到特殊文件夹,如NuGet软件包中的VS PrivateAssembly,visual-studio,nuget,nuget-package,special-folders,registrykey,Visual Studio,Nuget,Nuget Package,Special Folders,Registrykey,我们将把我们的一个商业组件,.NET网格控件作为一个NuGet包发布。该产品分为两个DLL—一个是核心功能,另一个是设计时支持组件。核心程序集可以作为“普通”DLL重新分发,并且可以放置到任何位置。但是,为了使整个产品在VSIDE中正常工作,设计时部分应该安装到一个特殊的文件夹(如VisualStudioPrivateSassemblies文件夹)中,或者安装到具有指向它的特殊注册表项的任何文件夹中。NuGet软件包允许我们这样做吗?对于这样的运行时依赖项,您需要使用Chocolate软件包。N

我们将把我们的一个商业组件,.NET网格控件作为一个NuGet包发布。该产品分为两个DLL—一个是核心功能,另一个是设计时支持组件。核心程序集可以作为“普通”DLL重新分发,并且可以放置到任何位置。但是,为了使整个产品在VSIDE中正常工作,设计时部分应该安装到一个特殊的文件夹(如VisualStudioPrivateSassemblies文件夹)中,或者安装到具有指向它的特殊注册表项的任何文件夹中。NuGet软件包允许我们这样做吗?

对于这样的运行时依赖项,您需要使用Chocolate软件包。NuGet软件包[设计用于]仅用于构建时依赖项。
见-巧克力在引擎盖下使用NuGet,但有不同的重点。您可能会将NuGet用于“anywhere”DLL,并将一个单独的巧克力包用于VS designer支持。

否,要修补VS的私有部分,您应该考虑使用一个。@HansPassant,如何使用PowerShell脚本?它可以是NuGet包的一部分,并且可以在安装包时自动执行。我们不能强迫VS用户安装其他工具,我们只能使用VS最新版本中可用的标准功能集。我的观点是,NuGet是为一个作业设计的工具:构建时依赖项。如果您希望尝试将其用于其他用途,则这取决于您,但您不能期望工具在其设计参数之外工作。NuGet用于构建依赖项,巧克力用于运行时依赖项。