带有 .NET Standard 目标的 Azure 云服务经典版

Mar*_*til 8 .net c# azure azure-cloud-services .net-standard-2.0

有没有办法如何使用面向 .netstandard2.0 的辅助角色运行 Azure 云服务经典项目?

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

严重性代码描述项目文件行抑制状态错误项目“C:\path\to\project\src\Frontend\Frontend.csproj”目标“.NETStandard,Version=v2.0”。它不能被以“.NETFramework,Version=v4.0”为目标的项目引用。UserDiscoveryService C:\Program Files\dotnet\sdk\2.0.2\Sdks\Microsoft.NET.Sdk\build\Microsoft.NET.Sdk.Common.targets 87

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

Mar*_*rkD 8

以防万一其他人遇到此问题,我通过将此行添加到云服务 .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...
Run Code Online (Sandbox Code Playgroud)

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

更改工具版本没有帮助。

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

<Project Sdk="Microsoft.NET.Sdk">
   <PropertyGroup>
     <TargetFramework>net462</TargetFramework>
   </PropertyGroup>
</Project>
Run Code Online (Sandbox Code Playgroud)

哈。标记。

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

  • 非常有用的信息谢谢。我认为是 .ccproj 而不是 .csproj 需要额外的行 - 我已经进行了编辑,正在等待审核。 (2认同)

Bru*_*hen 0

严重性代码说明项目文件行抑制状态错误项目“C:\path\to\project\src\Frontend\Frontend.csproj”目标“.NETStandard,版本=v2.0”。它无法被面向“.NETFramework,Version=v4.0”的项目引用。

根据错误,您的Frontend.csproj项目目标为.NETStandard 2.0.NETStandard 2.0 项目,并且您从项目目标为 .NETFramework V4.0 引用了 .NETStandard 2.0 项目。作为.NET Standard的官方文档,您至少需要使您的项目面向.NETFramework V4.6.1以引用.NETStandard 2.0项目或库。或者您需要选择较低的.NET Standard版本,更多详细信息您需要遵循.NET实现支持