nuget 中的 DLL 引用 Version=0.0.0.0
DLL in nuget references Version=0.0.0.0
我有以下情况:
有一个我构建为 nuget 包的库 LibF,它包含 net48 和 net core 3.1 的 dll。我是直接从 csproj 打包的人,使用:
<PropertyGroup>
<GeneratePackageOnBuild>true</GeneratePackageOnBuild>
</PropertyGroup>
它的版本为“4.2.0-alpha.55”(我使用 GitVersion)。然后我有另一个使用 LibF 的库 LibD,因此它将它作为 .csproj 中的 nuget 包引用,如下所示:
<ItemGroup>
<PackageReference Include="LibF " Version="4.2.0-alpha.55" />
</ItemGroup>
然后我还从 LibD 创建了一个 nuget 包。我是直接从 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 包(解压缩)时,我在 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>
之后的汇编版本是正确的。
我有以下情况:
有一个我构建为 nuget 包的库 LibF,它包含 net48 和 net core 3.1 的 dll。我是直接从 csproj 打包的人,使用:
<PropertyGroup>
<GeneratePackageOnBuild>true</GeneratePackageOnBuild>
</PropertyGroup>
它的版本为“4.2.0-alpha.55”(我使用 GitVersion)。然后我有另一个使用 LibF 的库 LibD,因此它将它作为 .csproj 中的 nuget 包引用,如下所示:
<ItemGroup>
<PackageReference Include="LibF " Version="4.2.0-alpha.55" />
</ItemGroup>
然后我还从 LibD 创建了一个 nuget 包。我是直接从 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 包(解压缩)时,我在 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>
之后的汇编版本是正确的。