1

我正在尝试创建一个 NuGet 预发布包。这是我的 NuSpec 文件:

<?xml version="1.0"?>
<package >
  <metadata>
    <id>xxx.Web.Mvc</id>
    <version>1.0.3-prelrelease1</version>
    <authors>xxx</authors>
    <owners>xxx</owners>
    <projectUrl>https://xxx</projectUrl>
    <requireLicenseAcceptance>false</requireLicenseAcceptance>
    <description>xxxx.</description>
    <releaseNotes>NuGet package.</releaseNotes>
    <copyright>Copyright 2013 xxx</copyright>
    <tags>asmx xxx</tags>
    <dependencies>
  <dependency id="Microsoft.AspNet.Mvc" version="4.0.30506.0" />
  <dependency id="Microsoft.AspNet.Razor" version="2.0.30506.0" />
  <dependency id="Microsoft.AspNet.WebPages" version="2.0.30506.0"  />
  <dependency id="Microsoft.Web.Infrastructure" version="1.0.0.0" />
  <dependency id="xxx" version="1.0.6"  />

    </dependencies>
 </metadata>
</package>

注意我在预发布版本中使用SemVer机制。

但是,当我使用以下方法构建我的包时:

PM> nuget pack Package.nuspec

我得到:

nuget : Input string was not in a correct format.
At line:1 char:1
+ nuget pack Package.nuspec
+ ~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : NotSpecified: (Input string wa...correct format.:String) [], RemoteException
    + FullyQualifiedErrorId : NativeCommandError

这直接是指我在版本字符串中有字母字符。

我正在使用 NuGet 2.2/VS2012。

为什么我的版本字符串没有被识别?

更新

我已将文件缩减为:

<?xml version="1.0"?> <package >   <metadata>
    <id>xxx</id>
    <version>1.0.3-test1</version>
    <authors>xxx</authors>
    <owners>xxx</owners>
    <requireLicenseAcceptance>false</requireLicenseAcceptance>
    <description>xxx</description>   </metadata> </package>

和文件~\content夹中的一个文件:

  • ~\content\New Journal Document.jnt

(我第一次看到 Windows 日记本。以为我会尝试制作一个简单的文件。:/)

4

2 回答 2

1

解决它。

尽管重新安装了 NuGet 2.x,但似乎我仍然有一个 v1.5。

似乎 Powershell 环境正在使用此版本,并且该Package Manager Console Host Version 2.7.40911.225消息并未指代 PowerShell 的版本,而只是指主机。现在我知道似乎很明显。

我对文件进行了粗暴处理并覆盖了它。

现在都在工作。

于 2013-10-18T15:55:01.377 回答
0

所以这两个:

NuGet.exe" pack ".\MyPackage.nuspec" -Version 1.0.1-alpha

<?xml version="1.0" encoding="utf-8"?>
<package>
  <metadata>
    <id>MyCoolPackage</id>
    <version>1.0.1-alpha</version>
    <authors>MyAuthors</authors>
    <owners>MyOwner</owners>
    <!-- <licenseUrl>http://www.yourLicenseUrl.com</licenseUrl>  -->
    <projectUrl>http://www.yourProjectUrl</projectUrl>
    <iconUrl>http://www.yourIconUrl.com</iconUrl>
    <requireLicenseAcceptance>false</requireLicenseAcceptance>
    <description>BuildDate : 2013_10_16__17:13:46</description>
    <releaseNotes>My Release Notes.</releaseNotes>
    <copyright>Copyright 2013</copyright>
    <tags>MyTag1 MyTag2</tags>
    <dependencies>
      <!--
            <dependency id="SampleDependency" version="1.0" />
            -->
    </dependencies>
  </metadata>
</package>

为我工作。

我正在使用 2.7.40809.172。

所以试试:

( 1号 )

拿出你的

<dependencies>

(只是为了踢)

( 2号 )

~尝试更新版本

NuGet.exe

(虽然根据文档,你应该没问题)

我拉了

1.0.1-alpha

直接来自文档。

从那开始,然后逐步达到您的自定义值。

http://docs.nuget.org/docs/reference/versioning

所以我拿了你的 nuspec ,把它放在我的演示代码中。

它奏效了!(我正在 xml 更新描述,仅供参考,因此存在小的差异)(请参阅下面的 xml)

但是我创建了一个不错的“xxx.Web.Mvc.1.0.3-prelrelease1.nupkg”文件。

<?xml version="1.0"?>
<package xmlns="http://schemas.microsoft.com/packaging/2013/05/nuspec.xsd">
  <metadata>
    <id>xxx.Web.Mvc</id>
    <version>1.0.3-prelrelease1</version>
    <authors>xxx</authors>
    <owners>xxx</owners>
    <projectUrl>https://xxx</projectUrl>
    <requireLicenseAcceptance>false</requireLicenseAcceptance>
    <description>BuildDate : 2013_10_17__11:29:15</description>
    <releaseNotes>NuGet package.</releaseNotes>
    <copyright>Copyright 2013 xxx</copyright>
    <tags>asmx xxx</tags>
    <dependencies>
      <dependency id="Microsoft.AspNet.Mvc" version="4.0.30506.0" />
      <dependency id="Microsoft.AspNet.Razor" version="2.0.30506.0" />
      <dependency id="Microsoft.AspNet.WebPages" version="2.0.30506.0" />
      <dependency id="Microsoft.Web.Infrastructure" version="1.0.0.0" />
    </dependencies>
  </metadata>
</package>

所以也许它与“内容”有关,而不是规范。

所以你可以做一个“基本”的包,比如:

.\Package.nuspec
.\content\
.\content\SomeImageFile.png
.\lib\
.\lib\net20\SomeDll.dll

看看这是否适用于带有预发布版本的 nuspec 文件?

于 2013-10-16T21:20:00.550 回答