NuGet版本:4.5.1.4879
当使用“基于项目”的NuGet软件包构建(即将.csproj文件传递给
在我的某些程序集中,这似乎按预期工作(我有一个简单的一对一关系,即程序集和包之间的关系 - 1个程序集产生同名的1个包),但在其他程序集中却没有。
在一个有问题的程序集中,AssemblyInfo包括以下内容:
在.csproj文件中,除了其他内容之外,我还有这个(请注意
它将包构建为
当使用“基于项目”的NuGet软件包构建(即将.csproj文件传递给
nuget pack
命令)时,我认为我了解NuGet如何确定在生成的软件包中使用的版本。具体来说,如果在AssemblyInfo中存在 AssemblyInformationalVersion
,则它将使用它,或者如果不存在 AssemblyInformationalVersion
,则使用 AssemblyVersion
。在我的某些程序集中,这似乎按预期工作(我有一个简单的一对一关系,即程序集和包之间的关系 - 1个程序集产生同名的1个包),但在其他程序集中却没有。
在一个有问题的程序集中,AssemblyInfo包括以下内容:
[assembly: AssemblyVersion("2.0.0.0")]
[assembly: AssemblyFileVersion("2.0.0.0")]
[assembly: AssemblyInformationalVersion("2.0.0")]
在.csproj文件中,除了其他内容之外,我还有这个(请注意
<Version>
标记): <PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
<ProjectGuid>{E233E8E2-EB9E-461F-80C2-63F9AFCC425D}</ProjectGuid>
<OutputType>Library</OutputType>
<AppDesignerFolder>Properties</AppDesignerFolder>
<RootNamespace>XYZ.Core.Messaging</RootNamespace>
<AssemblyName>XYZ.Core.Messaging</AssemblyName>
<TargetFrameworkVersion>v4.6.1</TargetFrameworkVersion>
<FileAlignment>512</FileAlignment>
<Version>2.0.0</Version>
<NuGetPackageImportStamp>
</NuGetPackageImportStamp>
<TargetFrameworkProfile />
</PropertyGroup>
顺便说一下,我没有.nuspec文件。
尽管设置了这些内容,但当我尝试构建包时,使用此命令:
nuget pack XYZ.Core.Messaging.csproj -OutputDirectory "c:\build\nuget-local" -Suffix "local"
它将包构建为
XYZ.Core.Messaging.1.0.0-local.nupkg
。对于我使用类似命令(只是不同的.csproj文件)构建的其他一些包,具有相同的AssemblyInfo内容,它们可以正确地构建版本2.0.0的包。那么NuGet从哪里获取1.0.0版本呢?
nuspec
文件中的<metadata>
内的<version>
是否已正确更新? - RBreuer<version>1.0.0-local</version>
- E-Riz