其中一个从属项目具有对Nest的必需引用
nuget程序包。
您是否在相关项目中调用了Nest的函数?如果VS发现从属项目实际上并未在代码中调用(需要)该程序集,则VS不会将从属项目的程序集复制到顶级项目中。
为什么会这样?不应该在
依赖项目解决了这种依赖关系?
我不确定问题中提供信息的原因,很多因素都可能导致异常行为,有时VS版本也会影响它...
假设您有一个顶级项目A
,并且它依赖于使用B
的项目Project Reference
。
1。如果两个目标都针对.net framework
,请确保它们使用相同的方式来管理nuget包。(两者都使用packages.config或两者都使用PackageReference)
2。如果A
是.net framework
项目,而B
是.net standard
项目,请确保A
也使用PackageReference
格式管理nuget包。
由于.net standard
(新的SDK格式)使用了PackageReference
软件包,如果A
使用了Packages.config
并引用了B
,则构建系统将对在构建过程中使用不同的Nuget格式。而且,我们找不到从Nest.dll
输出文件夹复制到B's
输出文件夹的A's
。
在这种情况下,请尝试将<RestoreProjectStyle>PackageReference</RestoreProjectStyle>
添加到顶级A的项目文件中。(xx.csproj)这将确保A和B都可以恢复为PackageReference
样式。
3。如果A
是.net framework
和packageReference
,而B
是.net framework
和Packages.config
,则右键单击{{1 }},然后选择packages.config
按钮。您也可以从this document获得一些帮助。
4。如果顶级项目是.net核心,而B项目的目标是.net标准,则在VS2017中,nest.dll不会复制到A的输出文件夹中,您可以尝试将Migrate Package.config to PackageReference
添加到您的A.csproj即可解决此问题。类似的问题,请参见here。 (并且VS2019 16.3.8已修复此问题,此问题主要发生在VS2017中)
此行为也受VS版本的影响,如果您使用的是VS2017,请更新到最新的<CopyLocalLockFileAssemblies>true</CopyLocalLockFileAssemblies>
以获取更好的体验。如果您使用的是VS2019,请将其更新为16.3.8。
希望它会有所帮助:)
本文链接:https://www.f2er.com/3141406.html