Azure Cloud Service Classic with .NET Standard目标

时间:2017-11-07 14:57:23

标签: c# .net azure azure-cloud-services .net-standard-2.0

有没有办法如何运行具有针对.netstandard2.0的辅助角色的Azure Cloud Service Classic项目?

我有这样的项目,但是每当我尝试构建它时,我都会收到此错误:

  

严重级代码描述项目文件行抑制状态   错误项目   ' C:\路径\为\项目的\ src \前端\ Frontend.csproj'   目标' .NETStandard,版本= v2.0'。它不能被引用   目标项目   ' .NETFramework,版本= 4.0版&#39 ;. UserDiscoveryService C:\ Program   Files \ dotnet \ sdk \ 2.0.2 \ Sdks \ Microsoft.NET.Sdk \ build \ Microsoft.NET.Sdk.Common.targets 87

我试图在ccproj中设置目标框架,但它没有帮助我。

2 个答案:

答案 0 :(得分:4)

以防万一其他人遇到此错误,我通过将以下行添加到云服务.ccproj文件的Project / PropertyGroup部分中来解决了此错误: <TargetFrameworkVersion>v4.6.2</TargetFrameworkVersion>

例如

<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="12.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
  <Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
<PropertyGroup>
    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
    <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
    <ProductVersion>2.9</ProductVersion>
    <ProjectGuid>8c99xxxx-xxxx-xxxx-xxxx-xxxxxxxx273e</ProjectGuid>
    <OutputType>Library</OutputType>
    <AppDesignerFolder>Properties</AppDesignerFolder>
    <RootNamespace>MyCloudService</RootNamespace>
    <AssemblyName>MyCloudService</AssemblyName>
    <TargetFrameworkVersion>v4.6.2</TargetFrameworkVersion> <!-- Added -->
    <StartDevelopmentStorage>True</StartDevelopmentStorage>
    <Name>CloudSheetCloudService</Name>
    etc...

默认情况下,云服务项目未指定框架(不需要),但是MSBuild中的某些内容似乎正在云服务和Web /辅助角色之间进行版本检查,然后使构建失败。 / p>

更改工具版本无济于事。

作为背景-我有一个旧的云服务,该服务引用了使用新的csproj样式的4.6.2项目,如下所示:

<Project Sdk="Microsoft.NET.Sdk">
   <PropertyGroup>
     <TargetFramework>net462</TargetFramework>
   </PropertyGroup>
</Project>

HTH。 马克。

编辑:要编辑的文件是.ccproj,而不是前面所述的.cproj文件。

答案 1 :(得分:0)

  

严重级代码说明项目文件行抑制状态错误项目&#39; C:\ path \ to \ project \ src \ Frontend \ Frontend.csproj&#39;目标&#39; .NETStandard,版本= v2.0&#39;。它不能被针对.NETFramework,Version = v4.0&#39;的项目引用。

根据错误,您的.NETStandard 2.0项目目标{{1}},并且您从一个面向.NETFramework V4.0的项目中引用了.NETStandard 2.0项目。作为有关.NET Standard的官方文档,您至少需要使您的项目以.NETFramework V4.6.1为目标,以引用.NETStandard 2.0项目或库。或者您需要选择较低的.NET标准版本,您需要遵循.NET implementation support更多详细信息。