以编程方式安装NuGet包

时间:2011-05-06 10:18:41

标签: nuget nuget-package

我正在尝试以编程方式安装一个简单的nuget-package。我已经创建了一个包含Site.css文件的包。所以它驻留在包的内容文件夹中。

使用此代码

public void TestInstall(string packageID, string physicalPath)
{
   var rep = PackageRepositoryFactory.Default.CreateRepository(new PackageSource("http://nuget.testserver.lan/nuget", "Default"));

   var packagemgr = new PackageManager(
                rep,
                new DefaultPackagePathResolver("http://nuget.testserver.lan/nuget"),
                    new PhysicalFileSystem(physicalPath)
                    );

   var package = rep.FindPackagesById(packageID).First();

   packagemgr.InstallPackage(package, false);
}

让我说我提供packageID ='Testpackage'和physicalPath ='c:\ inetpub \ test'它创建:

C:\的Inetpub \测试\ Testpackage

该文件夹包含:

包含Site.css和Testpackage.0.1.nupkg

的内容文件夹

不是我想要做的事情,但有点像:)

是否可以改变它:

  • 我可以指定将包放置在其缓存功能

  • 的位置
  • 将内容文件夹中的内容放置到指定路径吗?

  • 如果包中包含lib文件夹中的dll,则将它们放入bin目录(如果不存在则创建)

1 个答案:

答案 0 :(得分:2)

NuGet的许多功能目前依赖于Visual Studio自动化,因此在VS之外很难获得所有相同的行为。

很多人要求使用VS自动化需要更改的功能,所以我怀疑它可能在路线图上,因为它是重要的工作,我认为不会很快。

不要忘记您可以在Visual Package Manager控制台中安装软件包,因此它只是一个命令(Install-Package MarkdownHelper),并且不需要单击UI。