2013-10-16 139 views
1

我正在嘗試創建一個NuGet預發佈軟件包。這裏是我的NuSpec文件:NuGet的預發佈版本

<?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 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文件夾中的單個文件:

  • 〜\內容\新建日記Document.jnt

(我第一次看到Windows Journal。以爲我會試着做一個簡單的文件。 :/)

回答

1

修正了它。

儘管重新安裝NuGet 2.x,似乎我仍然有一個v1.5掛起。

似乎Powershell環境正在使用此版本,並且Package Manager Console Host Version 2.7.40911.225消息沒有引用PowerShell的版本,只是主機。現在看來我明白了。

我已經manhandled文件並覆蓋它。

所有正在工作。

+0

這就是我的「voidtools.com」評論/建議。有一箇舊版本掛在某處。 – granadaCoder

+0

唉,我在某個被鎖定的地方工作。 DIR/S爲我找到了:) –

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更新說明,fyi,因此有小的差異)(參見下面的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> 

所以也許它與「內容」有關,而不是規範。

所以,你可以做一個「基本」的包裝,如:

,看看是否與你的nuspec文件的工作原理與預發佈版本?

+0

謝謝:)我已經試過(1)和(2),現在在NuGet 2.7上運行。沒有-Version標誌,我仍然得到相同的錯誤。另外,我正在查看相同的文檔。東西是錯誤的... –

+0

你試過(暫時)刪除你的條目嗎? (踢) – granadaCoder

+0

您是否嘗試用「alpha」替換「prelrelease1」,也許它不喜歡「prelrelease1」末尾的「1」? – granadaCoder