web-dev-qa-db-ja.com

NuSpecのパッキング:値をnullまたは空の文字列にすることはできません。パラメータ名:値

私はウェブサイト用にたくさんのJavaScriptをパッケージ化しています。これが私の.nuspecのように見えます。

<?xml version="1.0"?>
<package xmlns="http://schemas.Microsoft.com/packaging/2011/08/nuspec.xsd">
  <metadata>
    <version>$version$</version>
    <authors>Author Person</authors>
    <owners>Company Name</owners>
    <id>PackageNameId</id>
    <title>PackageNameId</title>
    <requireLicenseAcceptance>false</requireLicenseAcceptance>
    <description>Description text stuff</description>
    <copyright>Company Copyright Info</copyright>
  </metadata>
  <files>
    <file src="www\**" target="" />  <!--It just packages everything in the www folder in the same directory as this .nuspec -->
  </files>
</package>

そのwwwフォルダにすべてをパッケージ化するだけです。 $version$トークンは、TFS(私が構築しているもの)のNugetPackageバージョンフラグに置き換えられる必要があります。

valueと呼ばれるものが何も表示されないので、エラーがスローされる理由に本当に戸惑っています。

完全なエラーは次のとおりです。

Attempting to build package from 'PackageName.nuspec'.

##[error]Value cannot be null or an empty string.

##[error]Parameter name: value
10
user3066571

nuspecファイルではなくcsprojファイルでnuget packを実行するとこのエラーが発生する可能性があります。

これ open NuGetの問題 から学んだように、AssemblyInfoトークンの置換(例:<version>$version$</version>)は、nuget packを呼び出している場合にのみ機能します。 .csprojまたは.vbprojファイル。 NuGetドキュメント からの引用:

プロジェクトはトークン値のソースであるため、トークンの置換にはプロジェクトファイルを直接使用する必要があります。 .nu​​specファイルでnugetパックを使用する場合、トークンの置き換えは行われません。

20
alexanian

使用している既存のパッケージを取得し、バージョンを削除しました(例:<version></version>)。 nugetパックmypackage.nuspecを実行しようとしたときに発生したエラー:

Attempting to build package from 'mypackage.nuspec'.
Value cannot be null or an empty string.
Parameter name: value

Nuspecファイルには4つの必須値があります。

  • Id
  • バージョン
  • 著者
  • 説明

このエラーが発生しているので、$ version $トークンが適切に渡されていないか、正しく使用されていないと思います。

0
techvice