前言:
现时兄弟们对“netpdb干什么用的”可能比较关怀,朋友们都想要分析一些“netpdb干什么用的”的相关文章。那么小编也在网上搜集了一些对于“netpdb干什么用的””的相关资讯,希望小伙伴们能喜欢,看官们快快来学习一下吧!现状及项目情况描述,有3个项目:服务项目A YH.ServiceAPI业务公共逻辑项目B YH.Bussiness 打了NugetPackage基础设施项目C YH.Infrastructure 打了NugetPackage
其中项目A引用了项目B的Nuget包,项目B引用了项目C的Nuget包,A与C没有直接强依赖关系如下图:操作过程:迭代中有开发人员在项目B中更新了C的Nuget包,私有方法中使用了C中某个类的新属性,或者新方法另一个名开发人员在项目A中更新了B的Nuget包,项目A中C的Nuget包版本未升级(由于A与C没有强依赖关系因此项目A中并没有将项目C的Nuget包升级到项目B所需要的版本)此时项目编译仍然正常不会报错上线之后出现问题:项目服务A上线之后操作某个功能报异常 ErrorMessage:Method not found: 'xxxProvider.GetValueByCodeV2(System.String, System.String)'.排查异常根据异常信息提示相关代码排查发现项目A中未更新C的Nuget包,导致运行时找不到C中的方法。处置方案更新项目A在C的Nuget包版本,并及时hotfix上线;团队内宣贯:基础设置等公共项目更新其依赖的Nuget包时,必须在基础设施项目自身打包文件中加入强其他项目的依赖,并设置对应最低版本。eg:项目YH.Bussiness 的YH.Bussiness.nuspec文件中加入项目C等强依赖及版本信息如下:
<?xml version="1.0"?> <package > <metadata> <id>YH.Bussiness</id> <version>1.0.0.0</version> <authors>YHCorp</authors> <owners>YHCorp</owners> <requireLicenseAcceptance>false</requireLicenseAcceptance> <description>YH.Bussiness</description> <releaseNotes>版本第一次构建</releaseNotes> <copyright>Copyright 2021</copyright> <tags>YH.Bussiness</tags> <dependencies> <dependency id="YH.MessageTemplate" version="[1.1.0.47,)" /> <dependency id="YH.Infrastructure" version="[1.1.0.12,)" /> </dependencies> </metadata> <files> <file src="D:\MSBuildWorkSpace\YH.Bussiness\bin\Release\YH.Bussiness.dll" target="lib\net45" /> <file src="D:\MSBuildWorkSpace\YH.Bussiness\bin\Release\YH.Bussiness.pdb" target="lib\net45" /> </files> </package>
标签: #netpdb干什么用的