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 中设置目标框架,但它没有帮助我。
以防万一其他人遇到此问题,我通过将此行添加到云服务 .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 文件,如前所述。
严重性代码说明项目文件行抑制状态错误项目“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实现支持。