#if net48由于缺少组件而导致编译器错误

问题描述

我正在努力将应用程序迁移到.netcore,并希望保留.Net Framework 4.8可用的本地库之一。但是,它使用System.Web.Security中的组件,因此我使用compiler directives将那些组件留给了最新框架以外的目标框架版本使用。在.net core中,无论如何我将不需要这些功能。但是,编译器将指令中的代码视为不存在,如以下示例所示:

// A project with <TargetFrameworkVersion>v4.8</TargetFrameworkVersion>
namespace Framework {
  public class A {
    public B Test; // Error,B is unknown.
  } // Class A
#if net48
  public class B {

  }
#endif 

} // Namespace Framework

具有以下SDK样式的csproj的项目:

<Project Sdk="Microsoft.NET.Sdk">
  <PropertyGroup>
    <OutputType>Library</OutputType>
      <TargetFrameworks>net48</TargetFrameworks>
      <PlatformTarget>AnyCPU</PlatformTarget>
  </PropertyGroup>
</Project>

因此,我什至还没有针对netstandard2.0,而只是在net48中存在一个问题。如果您认为提供单个目标框架要求XML元素是唯一的,那么我也尝试过这样做,没什么区别。

解决方法

框架属性需要大写:int i; char array[] = "abcdefghijklmnopqrstuvwxyz"; for (i = 0; array[i] != 'q'; ++i) ; // The ";" forms a null statement as the loop's body // After the loop,"i" will be the index of the letter q

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...