我们正尝试将现有的Azure Worker Role项目升级到.NET 4.7.2,并将我们解决方案中的所有相关项目重新定位到.NET Standard 2.0-这是我们要消除的中间步骤Worker Role项目完全完成,并迁移到Docker容器中托管的.NET Core 3.0 Worker Service。
我们解决方案中的所有项目文件(.csproj
)都已转换为“新”格式,并且我们删除了packages.config
,一切都很好。几乎。
我们剩下的一个障碍是尝试构建Azure云服务项目(.ccproj
文件,该文件为Azure生成打包的工作人员角色文件)。尝试构建Cloud Service项目会导致在microsoft.Common.CurrentVersion.targets
的第1653行出现错误:
项目
foo
目标net472
。面向.NETFramework,Version=v4.0
的项目无法引用它。
在这一点上,我们很困惑。我没有找到与此新错误相关的引用,该错误与新的.csproj
格式的工作人员角色项目相关。
我尝试将工作人员角色项目保留为“旧”项目文件格式,并将其定位到.NET 4.7.2,Azure Cloud Service项目的构建就很好了-NuGet包引用的 从我们解决方案中依赖的.NET Standard项目获得的解析不正确,并且NuGet包的DLL没有传播到生成输出文件夹-根据我的阅读,这是因为引用NuGet包的“新”项目格式方法不正确与旧的packages.config
格式兼容。我不得不求助于一次将一个NuGet包一次手动添加到Worker Role项目中,因为在运行时会出现新的缺少的依赖项。当我们在项目中使用近100个NuGet软件包时,显然不是一个好的解决方案。