【发布时间】:2019-11-04 15:31:28
【问题描述】:
我们正在尝试将我们现有的 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 格式中,我没有找到任何与辅助角色项目相关的特定错误的引用。
我尝试将 Worker Role 项目保留为“旧”项目文件格式并将其定位到 .NET 4.7.2 并且 Azure 云服务项目构建得很好 -- 除了 NuGet 包引用从我们的解决方案中依赖的 .NET Standard 项目未正确解析,并且 NuGet 包 DLL 未传播到构建输出文件夹 - 从我读过的内容来看,这是因为引用 NuGet 包的“新”项目格式方法不是兼容旧的packages.config 格式。我不得不求助于一次手动将一个 NuGet 包添加到 Worker Role 项目,因为在运行时会出现新的缺失依赖项。当我们在项目中使用近 100 个 NuGet 包时,显然不是一个好的解决方案。
【问题讨论】:
-
你找到克服困难的方法了吗?
-
我没有。我们将咬紧牙关,完全转换为 .NET Core 和 .NET Standard。
标签: c# azure visual-studio-2019 azure-worker-roles .net-4.7.2