【发布时间】:2011-05-06 10:18:40
【问题描述】:
我正在尝试以编程方式安装一个简单的 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\test\Testpackage
并且该文件夹包含:
包含 Site.css 和 Testpackage.0.1.nupkg 的内容文件夹
不完全是我想要做的,但有点:)
是否可以这样改:
我可以为缓存功能指定它应该放置包的位置
让它将内容文件夹中的任何内容放置到指定路径?
如果软件包在 lib 文件夹中包含 dll,则将它们放入 bin 目录中(如果不存在则创建)
【问题讨论】:
-
不幸的是,直接的 PackageManager API 不是那么灵活。但是你可以看看它在内部做了什么并改变行为。
标签: nuget nuget-package