我试图以编程方式安装一个简单的NuGet包。我创建了一个包含Site.css文件的包。所以它驻留在包的内容文件夹中。安装NuGet包编程
使用此代码
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);
}
可以说,我提供包ID = 'Testpackage' 和physicalPath = 'C:\的Inetpub \测试' 它创建:
C:\的Inetpub \测试\ Testpackage
和文件夹包含:
用的site.css和Testpackage.0.1.nupkg
012的内容文件夹不太我想要做的,但那种:)
是否有可能改变它,以便:
我可以指定它应该放在包的缓存功能
让它无论放置驻留在内容文件夹到指定的路径?
如果包中包含的DLL在lib文件夹让他们走在bin目录(创建,如果不存在)
不幸的是,直接PackageManager API是不是灵活。但是你可以看看它在内部做了什么,并改变了行为。 – davidfowl 2011-05-07 02:15:18