Bja*_*rtN 29 nuget nuget-package
创建nuget包时,nuget包的文件名中的版本似乎来自Web应用程序项目中的AssemblyInfo文件.我还在nuspec文件中创建了一个版本属性.
这两个版本号之间有什么关系,是否附有任何约定?
mo.*_*mo. 20
关于约定,NuGet软件本身及其应用于库中包的语义,如SemVer所述进行版本控制.具体来说,您可以通过使用"-beta.4"或其他内容添加nuspec版本号来指定测试版本.例如,查看图库如何显示最新版本的AutoFac,并比较它如何显示旧版本(请注意文本"这不是最新版本的Autofac可用." 编辑:图库似乎不再提供任何特殊消息对于非当前版本)和旧的PRE版本(文本"这是Autofac的预发布版本.").
不幸的是,AssemblyVersionin AssemblyInfo.cs可能不包含字母或连字符,因此不能以这种方式使用.但是,AssemblyInformationalVersionMAY中有字母和连字符,如果你提供它,NuGet将使用它而不是AssemblyVersion替换$version$你的nuspec文件中的标记.更重要的是,AssemblyInformationalVersion(如果你在Windows资源管理器中查看DLL的详细信息,也称为"产品版本"),至少在我看来,更能代表NuGet版本应该匹配的内容.
我对这种方法略有关注,因为我希望AssemblyVersion通过各种beta迭代和最终的生成迭代来保持相同AssemblyInformationalVersion,这意味着我允许我的DLL的几个不同版本进入野外,可能表现不同或者不正确,但就CLR而言都是相同的(CLR 只关心AssemblyVersion).但实际上,这种情况经常发生(包括上面描述的AutoFac包)并且它似乎不会引起问题.
看看AssemblyVersion,AssemblyFileVersion和AssemblyInformationalVersion之间有什么区别的两个极好的最高投票答案?了解更多信息AssemblyInformationalVersion和朋友.
程序集版本和nuget包版本之间不需要存在关系.按照惯例,许多维护者使用相同的数字.
nuget.exe如果您没有nuspec,或者您使用nuget.exe spec创建标记化的nuspec文件,则使用相同数字的约定也是默认值.但是,如果使用值替换$ version $标记,则该值将占优势并将在包文件名中使用.
您还可以在命令行上设置版本,该版本优先于上述所有版本.
有关Xavier博客的更多信息: NuGet $ version $ token解释
| 归档时间: |
|
| 查看次数: |
11875 次 |
| 最近记录: |