nuget:包版本未更新

时间:2018-03-13 16:14:49

标签: c# nuget assemblyinfo

我正在尝试打包新版本的自定义NuGet包,当我使用pack命令时,我得到的.nupkg文件的版本号不是&与我在.nuspec file中指定的那个匹配。

实施例: nuget pack mypackage.csproj -IncludeReferencedProjects -Prop Configuration=Release

.nuspec档案:

<?xml version="1.0"?>
<package >
  <metadata>
    <id>mypackage</id>
    <version>1.0.1</version>
    <authors>me</authors>
    <owners>me</owners>
    <requireLicenseAcceptance>false</requireLicenseAcceptance>
    <description>blah</description>
    <releaseNotes></releaseNotes>
    <copyright>Copyright 2016</copyright>
    <tags>tag1 tag2</tags>
    <dependencies>
    </dependencies>
  </metadata>
</package>

我应该得到一个名为mypackage.1.0.1.nupkg的文件,但我得到一个名为mypackage.1.0.0.nupkg的文件

当我尝试使用AssemblyInfo中包含的Properties\AssemblyInfo.cs数据并将版本声明为.nuspec中的变量时,我也会得到相同的结果档案:

属性\ AssemblyInfo.cs中     ...     [assembly:AssemblyVersion(&#34; 1.0.1&#34;)]     ...

我应该在项目中寻找其他属性来更新我的NuGet包吗?

提前致谢!

3 个答案:

答案 0 :(得分:1)

我最近也犯了这个错误。 您需要使用Properties \ AssemblyFileVersion属性为nuget包

设置正确的值
[assembly: AssemblyFileVersion("1.0.1")]

答案 1 :(得分:1)

  1. 确保在项目属性>应用程序>程序集信息中同时更改程序集版本和文件版本。
  2. 之后,请确保将您设置为“发布”模式并构建您的项目。
  3. 在项目文件夹中执行Nuget Spec命令
  4. 编辑规范,版本应设置为$ version $,以便从您的项目中获取它,删除需要删除的行,并用占位符填充这些行。
  5. 在同一文件夹中执行Nuget Pack命令,您应该会很好。

我经常忘记构建我的项目,因此它不会更新版本。

答案 2 :(得分:0)

好吧,我终于通过使用AssemblyInfo版本打包来更新我的版本。看来我的这个包的发布过程完全忽略了.nuspec文件并从最后编译的源中获取了版本。