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" pack "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" -Version "1.0.0.0" -NoPackageAnalysis" はコード 1 で終了しました。 WebCrawlerMVC

これが何を意味するのかよくわかりません。依存関係を追加していない場合、リリースで正常にビルドされます。それ以外の場合は、このエラーが返されます。

編集: 上記のコードを編集しました。アダムの間違いを見つけてくれてありがとうございますが、それでもエラーが発生します。また、各依存関係を取り出して、いずれかがエラーの原因であるかどうかを確認し、両方とも失敗しました。

4

3 に答える 3

4

完全なビルド ログを表示すると、上記のエラー行だけでなく、より多くの情報を見つけることができるはずです。NuGet.exe はおそらくそれらについて不平を言っています。

ただし、Octopus パッケージには依存関係を含めることはできません

Octopus にうまく変換されないもう 1 つの NuGet 機能は、依存関係です。NuGet には、パッケージ間の依存関係を追跡するための便利な機能があります。これは、たとえば、NHibernate のようなパッケージが log4net のようなパッケージに依存している場合に使用されます。NuGet は NHibernate をインストールし、依存関係を解決して、log4net をインストールします。NuGet はそれらをディスク上の 2 つの別々のフォルダーにインストールすることに注意してください。

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

最後から2番目の行の終わりに>が欠落しているようです。8)

編集:わかりました、多分それはそうではありませんでした。しかし、私はこのリンクがパス内のスペースの問題を説明しているのを見つけました。

多分それは関係がありますか?

于 2013-01-24T11:05:36.513 に答える
0

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

dependencies 要素は、metadata 要素の子要素です

ナゲットパックの実行中にエラーが発生したのはそのためだと思います

于 2015-07-20T14:28:45.647 に答える