在Azure云服务中支持.net 4.6或更高版本

4
我有一个云服务,我使用Azure SDK 2.9。它包含多个csproj文件。其中一个项目,我想迁移到.NET版本4.6。
当我升级项目并尝试部署服务时,出现错误:“Microsoft Azure Cloud Service项目仅支持在.NET Framework版本4.0和4.5上运行的角色。”
我在互联网上阅读到,如果服务使用Azure SDK 2.9,则不应该出现此错误,但我无法在网上找到任何帮助,因此我在这里发布此问题。
2个回答

10

要使用.NET 4.6,您需要确保云服务正在使用最新的osFamily

osFamily版本5安装了以下.NET Frameworks:

4.0、4.5、4.5.1、4.5.2、4.6、4.6.1、4.6.2

您可以在ServiceConfiguration中设置此内容:

<ServiceConfiguration 
    serviceName="MyService" 
    osFamily="5" 
    osVersion="*">

    <!-- your role definitions in here -->

</ServiceConfiguration>

查看完整的参考文档:Azure 客户操作系统版本和 SDK 兼容矩阵


这里有一些相关信息,可能会对查看此线程的人有用,即重新安装尚未安装在使用的操作系统版本上的特定版本的 .Net:https://learn.microsoft.com/en-us/azure/cloud-services/cloud-services-dotnet-install-dotnet - Steve Kennaird

1
以下方法可以解决问题。需要在ccproj文件底部添加此内容。
<ItemGroup>
    <WindowsAzureFrameworkMoniker Include=".NETFramework,Version=v4.8" />
</ItemGroup>
<Target Name="ValidateRoleTargetFramework" Outputs="%(RoleReference.Identity)" Condition="'@(RoleReference)' != ''">
    <PropertyGroup>
        <_RoleTargetFramework>%(RoleReference.RoleTargetFramework)</_RoleTargetFramework>
        <_IsValidRoleTargetFramework>True</_IsValidRoleTargetFramework>
    </PropertyGroup>
</Target>

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接