我正在为一个网站打包一堆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文件夹中的所有内容。 {T}中的NugetPackage版本标志应该替换$version$
令牌(我正在构建)。
我没有看到任何名为value
的内容,所以我真的不知道为什么会发生错误。
这是完整的错误:
Attempting to build package from 'PackageName.nuspec'.
##[error]Value cannot be null or an empty string.
##[error]Parameter name: value
答案 0 :(得分:12)
我怀疑您在nuget pack
文件而不是nuspec
文件上运行csproj
时出现此错误。
正如我从此open NuGet issue中了解到的那样,只有在您的.csproj或.vbproj文件上调用<version>$version$</version>
时,AssemblyInfo令牌替换(例如nuget pack
)才有效。引自NuGet documentation:
直接使用项目文件是替换令牌所必需的,因为项目是令牌值的来源。如果将nuget pack与.nuspec文件一起使用,则不会发生令牌替换。
答案 1 :(得分:0)
我使用了我正在使用的现有软件包并删除了该版本(例如<version></version>
)。我尝试运行nuget pack mypackage.nuspec时遇到的错误:
Attempting to build package from 'mypackage.nuspec'.
Value cannot be null or an empty string.
Parameter name: value
nuspec文件有4个必需值:
由于您收到此错误,我猜想无论您的$ version $令牌是否未正确传递或正确使用。