MsBuild、SpecificVersion和VST存在问题

MsBuild、SpecificVersion和VST存在问题,msbuild,nuget,visual-studio-2017,Msbuild,Nuget,Visual Studio 2017,情况如下: 我们有一套通用的.net库: CommonLib.Main CommonLib.Specialized 我们有一个CI构建来构建这两个库,并将它们放在我们的NuGet repo中。两者都可以作为单独的NuGet包使用——用户可能只想加载Main,或者他们可以拉取包含Main的专用包 专门的引用Main作为一个Nuget包 我目前正在对这些软件包进行一些升级 首先,我升级了Main。我将AssemblyInfo中的Main版本从1.1.0.更新为2.0.0. MsBuild将在“*”

情况如下:

我们有一套通用的.net库:

CommonLib.Main
CommonLib.Specialized
我们有一个CI构建来构建这两个库,并将它们放在我们的NuGet repo中。两者都可以作为单独的NuGet包使用——用户可能只想加载Main,或者他们可以拉取包含Main的专用包

专门的引用Main作为一个Nuget包

我目前正在对这些软件包进行一些升级

首先,我升级了Main。我将
AssemblyInfo
中的
Main
版本从1.1.0.更新为2.0.0.

MsBuild将在“*”位置包含内部版本号

CI构建运行,一个名为“
CommonLib.Main,version=2.0.0.345
”的Main版本发布到我们的NuGet repo。在Nuget repo上,正如我所料,该版本被列为“2.0.0”

接下来,我升级了
CommonLib.Specialized
,并将NuGet引用更新为
CommonLib.Main,版本=2.0.0。

我签入了这些更改,CI构建再次运行

现在,CI构建已经创建了Main的新版本,版本为2.0.0.346,并将其放在NuGet repo上

问题是:

现在,当我们再次运行CI构建时,
CommonLib.Specialized
的构建失败,因为在.csproj中,它如下所示:

<Reference Include="CommonLib.Main, Version=2.0.0.345, Culture=neutral, processorArchitecture=MSIL">
      <HintPath>..\packages\CommonLiib.Main-2.0.0\lib\net461\CommonLib.Main</HintPath>
    </Reference>

我想我可以通过在项目中将
SpecificVersion
设置为
false
来解决这个问题,但这似乎相当粗糙。有没有更好的办法来解决这个问题?我觉得我不应该在每次生成后都刷新NuGet引用。

如果版本号不是NuGet软件包版本的一部分,为什么要在程序集版本中包含该版本号?@SouthShoreAK您有过解决方案吗
<package id="CommonLib.Main" version="2.0.0" targetFramework="net461" />
C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\MSBuild\15.0\Bin\amd64\Microsoft.Common.CurrentVersion.targets(1964,5): warning MSB3245: Could not resolve this reference. Could not locate the assembly "CommonLib.Main, Version=2.0.0.345, Culture=neutral, processorArchitecture=MSIL". Check to make sure the assembly exists on disk. If this reference is required by your code, you may get compilation errors. 
For SearchPath "{HintPathFromItem}".
Considered "..\packages\CommonLib.Main-2.0.0\lib\net461\CommonLib.Main.dll",
but its name "CommonLib.Main, Version=2.0.0.**346**, Culture=neutral, PublicKeyToken=null"
didn't match the expected name "CommonLib.Main, Version=2.0.0.**345**, Culture=neutral, processorArchitecture=MSIL".