2

Octopack 无法使用以下 xml 构建

<?xml version="1.0"?>
<package >
  <metadata>
    <id>WebCrawlerMVC</id>
    <version>1.0.0.0</version>
    <title>Web Crawler</title>
    <authors>lardern</authors>
    <owners>Nostrum Group</owners>
    <requireLicenseAcceptance>false</requireLicenseAcceptance>
    <description>packaging webcrawler mvc</description>
    <releaseNotes>no release notes</releaseNotes>
    <copyright>Copyright 2013</copyright>
  </metadata>
   <dependencies>
        <dependency id="Ninject" version="3.0.1.10" />
        <dependency id="HtmlAgilityPackHelpers" />
    </dependencies>
    <files src="C:\Users\lardern\Documents\Visual Studio 2010\Projects\WebCrawlerMVC\packages\Ninject.3.0.1.10\lib\net40\Ninject.dll"/>
    <files src="C:\Users\lardern\Documents\Visual Studio 2010\Projects\HtmlAgilityPack\HtmlAgilityPack\HtmlAgilityPackHelpers\bin\Release\HtmlAgilityPackHelpers.dll" />
</package>

我收到的错误是

错误 2 命令 ""C:\Users\lardern\Documents\Visual Studio 2010\Projects\WebCrawlerMVC\WebCrawlerMVC..\packages\OctoPack.1.0.111\tools\NuGet.exe" 包 "C:\Users\lardern\ Documents\Visual Studio 2010\Projects\WebCrawlerMVC\WebCrawlerMVC\WebCrawlerMVC.nuspec" -OutputDirectory "bin" -basePath "C:\Users\lardern\Documents\Visual Studio 2010\Projects\WebCrawlerMVC\WebCrawlerMVC" -版本 "1.0.0.0" -NoPackageAnalysis”退出,代码为 1。WebCrawlerMVC

我不太确定这意味着什么,如果我没有添加依赖项,它会在 release 中构建,否则会返回此错误。

编辑:我编辑了上面的代码,感谢亚当发现错误,但错误仍然存​​在。还取出每个依赖项,看看是否有一个导致错误,两次都失败。

4

3 回答 3

4

如果您查看完整的构建日志,您应该能够找到更多信息,而不仅仅是上面的错误行 - NuGet.exe 可能正在抱怨它们。

但是,Octopus 包无论如何都不应该包含依赖项

另一个不能很好地转换为 Octopus 的 NuGet 功能是依赖项。NuGet 具有用于跟踪包之间依赖关系的便捷功能。例如,当 NHibernate 之类的包依赖于 log4net 之类的包时,就会使用它。NuGet 将安装 NHibernate、解决依赖关系并安装 log4net。请务必注意,NuGet 会将它们安装到磁盘上的两个单独文件夹中:

packages/NHibernate.x.y.z
packages/log4net.x.y.z

虽然这对通过 Visual Studio 引用的库有意义,但在 Octopus 中没有意义,原因与上述相同。例如,如果您的 Octopus 应用程序包依赖于 log4net,那么在磁盘上您将拥有:

packages/YourApp.x.y.z  
packages/log4net.x.y.z

在运行时,YourApp 下的可执行文件或 ASP.NET 站点会尝试调​​用 log4net 中的方法,但由于找不到 DLL 而失败。虽然这在理论上可以使用配置文件中的探测路径来解决,但实际上最好避免这种方法。

因此,Octopus NuGet 包不能有依赖项。

相反,您需要使用的任何库都应捆绑在标准二进制文件夹中的包内

于 2013-01-24T11:21:53.087 回答
1

看起来在倒数第二行的末尾缺少一个 > 。8)

编辑:好吧,也许不是这样。但我发现这个链接描述了路径中的空格问题。

也许这是相关的?

于 2013-01-24T11:05:36.513 回答
0

https://docs.nuget.org/create/nuspec-reference#specifying-dependencies

dependencies 元素是 metadata 元素的子元素

我想这就是你在运行 nuget pack 时出错的原因

于 2015-07-20T14:28:45.647 回答