2016-11-28 38 views
0

当前我正在使用* .csproj和nuspec文件创建nuget包。在nuspec文件我声明了这样的组装/包版本:使用.csproj生成nuget包会导致版本号错误

<package > 
    <metadata> 
    <id>$id$</id> 
    <version>$version$</version> 
    ... 
    </metadata> 
</package > 

在版本声明如下组装:

[assembly: AssemblyVersion("6.0.0")] 
[assembly: AssemblyFileVersion("6.0.0")] 

的问题是,当我创建软件包使用nuget pack xxx.csproj, 它创建了一个包含版本6.0.0.0而不是6.0.0的包。这在使用nuget安装程序集时会产生问题,因为visual studio在package/.../6.0.0中搜索程序集,但它存储在packages/.../6.0.0中。

这是一个已知的问题?

回答

1

的NuGet使用其他属性来生成在$版本$替代版本:

[装配:AssemblyInformationalVersion( “6.0.0”)

至于说how to version assemblies destined for Nuget的NuGet使用这个属性,因为没有别的好像关心它:) AssemblyInformationalVersion属性是一个字面的,可以用于semantic versions

+0

为什么nuget将它替换为'$ id $'而不是'$ version $'? – BendEg

+0

对不起,这是一个错误,是$ version $ not $ id $ – SERWare

+0

好的,创建包似乎可行,但为什么'msbuild'试图在'.6.0.0.0 \ lib \ net451 \'下找到程序集并且不在'.6.0.0 \ lib \ net451 \'下面?我正在使用'nuget restore ... sln'来恢复它。非常感谢:) – BendEg

相关问题