繁体   English   中英

DLL 在 nuget 参考版本 = 0.0.0.0

[英]DLL in nuget references Version=0.0.0.0

我有以下情况:

有一个库 LibF,我将其构建为 nuget package,它包含 net48 和 net core 3.1 的 dll。 我是直接从 csproj 打包它的人,使用:

<PropertyGroup>
    <GeneratePackageOnBuild>true</GeneratePackageOnBuild>
</PropertyGroup>

它的版本=“4.2.0-alpha.55”(我使用GitVersion)。 然后我有另一个使用 LibF 的库 LibD,因此它在.csproj 中将其引用为 nuget package,如下所示:

<ItemGroup>
  <PackageReference Include="LibF " Version="4.2.0-alpha.55" />
</ItemGroup>

然后我还从 LibD 创建了一个 nuget package。 我是直接从 csproj 打包它的人,使用:

<PropertyGroup>
    <GeneratePackageOnBuild>true</GeneratePackageOnBuild>
</PropertyGroup>

当我尝试在其他地方使用 LibD 的 nuget 时,我在 Visual Studio 2019 中遇到编译问题:

Error   CS0012  The type 'MyType' is defined in an assembly that is not referenced. 
You must add a reference to assembly 'LibF , Version=0.0.0.0, Culture=neutral,  
PublicKeyToken=468d6536c503beba'.

显然我没有版本 0.0.0.0。 现在,当我查看 nuget package(解压缩)时,我在 LibD.nuspec 中看到以下条目:

<dependency id="LibF" version="4.2.0-alpha.55" exclude="Build,Analyzers" />

这是对的。 但是当我使用 JetBrains DotPeek 分析 dll 时,它在 dll 的参考资料中告诉我:

LibF, Version=0.0.0.0, Culture=neutral, PublicKeyToken=468d6536c503beba

所以我的问题是:为什么有 Version=0.0.0.0 作为 dll 的参考? 为什么它不想要 4.2.0.0,因为这是我拥有的版本,也是我希望 dll 引用的版本。

什么可能导致这样的问题?

csproj 的 PropertyGroup 中缺少以下内容:

<UpdateAssemblyInfo>true</UpdateAssemblyInfo>

之后的程序集版本是正确的。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM