如何从 HTTP URI(本地托管在 IIS 上)安装包?

How do I install packages from an HTTP URI (locally hosted on IIS)?

我创建了一个可以在本地安装的包:

cinst <packageName> -source "C:\Host\<packageName>"

但是,当我将这个包放在由 IIS 从虚拟目录通过 http 服务的文件服务器上时,它失败了。

cinst <packageName> -source "http://server/packages/<packageName>"

目标机器可以在浏览器中浏览到包目录,因此可以看到服务器、文件夹并具有列表和读取权限。

错误

[ERROR] - install not installed. The package was not found with the source(s) listed.

Fiddler 显示请求:

http://server/packages/<packageName>
GET /packages/<packageName>
301 redirect to http://server:port/packages/<packageName>
http://server:port/packages/<packageName>
200 with <packageName>.nuspec and .nupkg files in the response

然后

GET /packages/<packageName>/$metadata
404 File or directory not found

我的两个想法:

  1. 它是 Windows 安全措施阻止我
  2. 我的包裹是否缺少一些元数据

我曾经在 *nix 上管理包,最近才开始在 Windows 环境中工作,所以请随意说出任何明显的事情!

环境:

Information.PlatformVersion='6.1.7601.65536'|
Information.PlatformName='Windows 7'|
Information.ChocolateyVersion='0.9.9.11'|  

设置了 -debug 的巧克力日志中没有其他指针 不使用 IDE 或 Repo,一切都很简单。

太!

不幸的是,NuGet(以及代理 Chocolatey)不能使用裸 http。它现在需要 OData,尽管将来 Chocolatey 团队计划只允许使用 http 索引。

以下资源解释了您的包托管选项:https://github.com/chocolatey/choco/wiki/How-To-Host-Feed