Visual Studio 在nuget.org自定义VS项目模板中添加来自www.example.com的NuGet包

qvtsj1bj  于 2023-02-09  发布在  其他
关注(0)|答案(1)|浏览(142)

我尝试在Visual Studio中添加自定义项目模板时自动添加NuGet包。这些包需要从www.example.com引用,不幸的是,无法在ItemTemplate-Zipfiles中本地部署它们。nuget.org, deploying them locally in the ItemTemplate-Zipfiles is unfortunately no option.
到目前为止我已经尝试过:
1.)以编程方式修改packages.config。由于这需要重新加载项目并手动干预以安装添加的包,因此实际上并不可行
2.)在模板向导中使用NuGet.VisualStudio.Interop并将其添加到vstemplate文件需要本地存储NuGet包,因为我需要从www.example.com安装它们,所以这也不是一个选项。 nuget.org , this is no option either.
3.)使用NuGet-API似乎也不起作用,因为它不接受从envdtevslangproj传递给它的"project"参数。
任何想法都是非常受欢迎的。

7kqas0il

7kqas0il1#

最后用以下代码解决了这个问题:

List<string> packagesToInstall = new List<string>();
packagesToInstall.Add("SomeNuGetPackageIdentifier");
var componentModel = (IComponentModel)Microsoft.VisualStudio.Shell.ServiceProvider.GlobalProvider.GetService(typeof(SComponentModel));
IVsPackageInstaller2 installer = componentModel.GetService<IVsPackageInstaller2>();

//Loop through the list of Strings and install the Packages.
foreach (string package in packagesToInstall)
{
    try
    {
        installer.InstallLatestPackage(null, vsProj.Project, package, false, false);
    }
    catch (Exception ex)
    {
        MessageBox.Show(ex.Message);
        continue;
    }
}

相关问题