解决MySql布尔型新旧版本兼容问题,采用枚举来表示布尔型的数据表。由正向工程赋值
大石头 authored at 2018-05-15 21:21:05
10.21 KiB
X
<Project Sdk="Microsoft.NET.Sdk" ToolsVersion="Current">
  <PropertyGroup>
    <TargetFrameworks>net45;net461;net462;netstandard2.0;netstandard2.1;netcoreapp3.1;net5.0;net6.0;net5.0-windows;net6.0-windows;net7.0;net7.0-windows;net8.0;net8.0-windows;net9.0;net9.0-windows;net10.0;net10.0-windows</TargetFrameworks>
    <AssemblyName>NewLife.Core</AssemblyName>
    <RootNamespace>NewLife</RootNamespace>
    <AssemblyTitle>NewLife核心组件库</AssemblyTitle>
    <Description>Core library of NewLife framework. Provides high-performance infrastructure for building scalable applications: logging (file/network), configuration (XML/JSON/HTTP), cache (memory/distributed), network (TCP/UDP/HTTP/WebSocket), serialization (binary/XML/JSON), APM tracing, IoC container, actor model, timer scheduler, plugin framework, and more. Supports .NET Framework 4.5 to .NET 10. 核心组件库,为构建可扩展应用程序提供高性能基础设施。提供日志(文件/网络)、配置(XML/JSON/HTTP)、缓存(内存/分布式)、网络(TCP/UDP/HTTP/WebSocket)、序列化(Binary/XML/JSON)、APM性能追踪、对象容器、并行模型、定时调度、插件框架等。支持.NET Framework 4.5至.NET 10全版本。</Description>
    <Company>新生命开发团队</Company>
    <Copyright>©2002-2026 NewLife</Copyright>
    <VersionPrefix>12.0</VersionPrefix>
    <VersionSuffix>$([System.DateTime]::Now.ToString(`yyyy.MMdd`))</VersionSuffix>
    <Version>$(VersionPrefix).$(VersionSuffix)</Version>
    <FileVersion>$(Version)</FileVersion>
    <AssemblyVersion>$(VersionPrefix).$([System.DateTime]::Now.ToString(`yyyy.MMdd`))</AssemblyVersion>
    <OutputPath>..\Bin</OutputPath>
    <GenerateDocumentationFile>True</GenerateDocumentationFile>
    <LangVersion>latest</LangVersion>
    <Nullable>enable</Nullable>
    <ImplicitUsings>enable</ImplicitUsings>
    <SignAssembly>True</SignAssembly>
    <AssemblyOriginatorKeyFile>..\Doc\newlife.snk</AssemblyOriginatorKeyFile>
    <NoWarn>1701;1702;NU5104;NU1505;NU1900;NETSDK1138;CS7035</NoWarn>
    <AnalysisLevel>latest</AnalysisLevel>
    <WarningsAsErrors>CA2007</WarningsAsErrors>
    <AllowUnsafeBlocks>True</AllowUnsafeBlocks>
  </PropertyGroup>
  <PropertyGroup>
    <PackageId>$(AssemblyName)</PackageId>
    <Authors>$(Company)</Authors>
    <PackageProjectUrl>https://newlifex.com/core</PackageProjectUrl>
    <PackageIcon>leaf.png</PackageIcon>
    <RepositoryUrl>https://github.com/NewLifeX/X</RepositoryUrl>
    <RepositoryType>git</RepositoryType>
    <PackageTags>新生命团队;X组件;NewLife;$(AssemblyName)</PackageTags>
    <PackageReleaseNotes>v12 大版本:网络库重构——数据包引用计数所有权模型、MessagePump 帧泵 + 无状态 IMessageCodec 单栈(整删 PacketCodec/Handlers 族)、数据管道 Pipe/PipeReader/PipeWriter、WebSocket 分片重组、Unix 域套接字传输;以及 HTTP/WebSocket/协议栈/数据管道 40+ 处缺陷修复。详见 ChangeLog.md</PackageReleaseNotes>
    <PackageLicenseExpression>MIT</PackageLicenseExpression>
    <PublishRepositoryUrl>true</PublishRepositoryUrl>
    <EmbedUntrackedSources>true</EmbedUntrackedSources>
    <IncludeSymbols>true</IncludeSymbols>
    <SymbolPackageFormat>snupkg</SymbolPackageFormat>
    <PackageReadmeFile>Readme.MD</PackageReadmeFile>
  </PropertyGroup>
  <ItemGroup Condition="'$(GITHUB_ACTIONS)' == 'true'">
    <PackageReference Include="Microsoft.SourceLink.GitHub" Version="1.1.1">
      <PrivateAssets>all</PrivateAssets>
      <IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
    </PackageReference>
  </ItemGroup>
  <!-- 源生成器:作为构建依赖(ReferenceOutputAssembly=false 不引用输出、不注入分析器),
       SetTargetFramework 避免跨 TFM 协商;分析器程序集在主包打包时嵌入 analyzers/dotnet/cs,下游引用主包即自动获得 -->
  <ItemGroup>
    <ProjectReference Include="..\NewLife.Core.SourceGenerator\NewLife.Core.SourceGenerator.csproj" ReferenceOutputAssembly="false" SkipGetTargetFrameworkProperties="true" SetTargetFramework="TargetFramework=netstandard2.0" Private="false" />
    <None Include="..\NewLife.Core.SourceGenerator\bin\$(Configuration)\netstandard2.0\NewLife.Core.SourceGenerator.dll" Pack="true" PackagePath="analyzers/dotnet/cs" Visible="false" />
  </ItemGroup>

  <PropertyGroup Condition="'$(TargetFramework)'=='net45' or '$(TargetFramework)'=='net461' or '$(TargetFramework)'=='net462' or '$(TargetFramework)'=='net5.0-windows' or '$(TargetFramework)'=='net6.0-windows' or '$(TargetFramework)'=='net7.0-windows' or '$(TargetFramework)'=='net8.0-windows' or '$(TargetFramework)'=='net9.0-windows' or '$(TargetFramework)'=='net10.0-windows'">
    <DefineConstants>$(DefineConstants);__WIN__</DefineConstants>
  </PropertyGroup>

  <!-- net8.0+(含 -windows 形态)常驻启用 AOT/裁剪分析器:0 告警成为构建期硬约束,与 AOT 支持基线一致。
       注意 SDK 会将 IsTrimmable 一并置真,这些目标的程序集会嵌入 IsTrimmable 元数据 -->
  <PropertyGroup Condition="$([MSBuild]::IsTargetFrameworkCompatible('$(TargetFramework)', 'net8.0'))">
    <IsAotCompatible>true</IsAotCompatible>
  </PropertyGroup>

  <ItemGroup Condition="'$(TargetFramework)'=='net5.0-windows'">
    <FrameworkReference Include="Microsoft.WindowsDesktop.App.WindowsForms" IsImplicitlyDefined="true" TargetingPackVersion="5.0.0" />
  </ItemGroup>
  <!-- net6.0/net7.0 的桌面引用包钉在较低补丁版本(历史决策:降低消费者所需 WindowsDesktop 运行时最低版本),
       但 SDK 对已 EOL 的目标只按“已知最新补丁”下载引用包,解析请求 6.0.0/7.0.0 时报 NETSDK1127。
       这里显式下载对应版本的引用包,使 packs 目录没有 6.x/7.x(未安装 net6/net7 SDK)的机器也能编译。 -->
  <ItemGroup Condition="'$(TargetFramework)'=='net6.0-windows'">
    <FrameworkReference Include="Microsoft.WindowsDesktop.App.WindowsForms" IsImplicitlyDefined="true" TargetingPackVersion="6.0.0" />
    <PackageDownload Include="Microsoft.WindowsDesktop.App.Ref" Version="[6.0.0]" />
  </ItemGroup>
  <ItemGroup Condition="'$(TargetFramework)'=='net7.0-windows'">
    <FrameworkReference Include="Microsoft.WindowsDesktop.App.WindowsForms" IsImplicitlyDefined="true" TargetingPackVersion="7.0.0" />
    <PackageDownload Include="Microsoft.WindowsDesktop.App.Ref" Version="[7.0.0]" />
  </ItemGroup>
  <ItemGroup Condition="'$(TargetFramework)'=='net8.0-windows'">
    <FrameworkReference Include="Microsoft.WindowsDesktop.App.WindowsForms" IsImplicitlyDefined="true" TargetingPackVersion="8.0.0" />
  </ItemGroup>
  <ItemGroup Condition="'$(TargetFramework)'=='net9.0-windows'">
    <FrameworkReference Include="Microsoft.WindowsDesktop.App.WindowsForms" IsImplicitlyDefined="true" TargetingPackVersion="9.0.0" />
  </ItemGroup>
  <ItemGroup Condition="'$(TargetFramework)'=='net10.0-windows'">
    <FrameworkReference Include="Microsoft.WindowsDesktop.App.WindowsForms" IsImplicitlyDefined="true" TargetingPackVersion="10.0.0" />
  </ItemGroup>

  <!-- net*-windows 使用 System.Management 进行标准 WMI 查询(反射调用,避免核心库直接暴露该类型) -->
  <ItemGroup Condition="'$(TargetFramework)'=='net5.0-windows' or '$(TargetFramework)'=='net6.0-windows' or '$(TargetFramework)'=='net7.0-windows' or '$(TargetFramework)'=='net8.0-windows' or '$(TargetFramework)'=='net9.0-windows' or '$(TargetFramework)'=='net10.0-windows'">
    <PackageReference Include="System.Management" Version="9.0.5" />
  </ItemGroup>

  <ItemGroup Condition="'$(TargetFramework)'=='netstandard2.1'">
    <PackageReference Include="System.Runtime.CompilerServices.Unsafe" Version="6.1.2" />
  </ItemGroup>
  <ItemGroup Condition="'$(TargetFramework)'=='netstandard2.0'">
    <PackageReference Include="System.Memory" Version="4.6.3" />
    <!-- 为旧版框架提供 ValueTask/IValueTaskSource 等类型,支持 IAsyncEnumerable Stub -->
    <PackageReference Include="System.Threading.Tasks.Extensions" Version="4.6.3" />
  </ItemGroup>
  <ItemGroup Condition="'$(TargetFramework)'=='net462'">
    <PackageReference Include="System.ValueTuple" Version="4.6.2" />
    <PackageReference Include="System.Memory" Version="4.6.3" />
    <PackageReference Include="System.Threading.Tasks.Extensions" Version="4.6.3" />
  </ItemGroup>
  <ItemGroup Condition="'$(TargetFramework)'=='net461'">
    <PackageReference Include="System.ValueTuple" Version="4.5.0" />
    <PackageReference Include="System.Memory" Version="4.5.5" />
    <PackageReference Include="System.Threading.Tasks.Extensions" Version="4.5.4" />
  </ItemGroup>
  <ItemGroup Condition="'$(TargetFramework)'=='net45'">
    <!--<PackageReference Include="System.Net.Http" Version="4.3.4" />-->
    <!--<PackageReference Include="System.Runtime.InteropServices.RuntimeInformation" Version="4.3.0" />-->
    <PackageReference Include="System.ValueTuple" Version="4.5.0" />
    <PackageReference Include="System.Memory" Version="4.5.5" />
    <PackageReference Include="System.Threading.Tasks.Extensions" Version="4.5.4" />
  </ItemGroup>

  <ItemGroup Condition="'$(TargetFramework)'=='net45' or '$(TargetFramework)'=='net461' or '$(TargetFramework)'=='net462'">
    <Using Include="System.Net.Http" />
    <Reference Include="Microsoft.VisualBasic" />
    <Reference Include="System.Management" />
    <Reference Include="System.Net.Http" />
    <Reference Include="System.IO.Compression" />
    <Reference Include="System.Web" />
    <Reference Include="System.Windows.Forms" />
  </ItemGroup>

  <ItemGroup>
    <Compile Remove="Agent\**" />
    <Compile Remove="Applications\**" />
  </ItemGroup>
  <ItemGroup>
    <EmbeddedResource Remove="Agent\**" />
    <EmbeddedResource Remove="Applications\**" />
  </ItemGroup>
  <ItemGroup>
    <None Remove="Agent\**" />
    <None Remove="Applications\**" />
  </ItemGroup>
  <ItemGroup>
    <None Remove="Remoting\ApiClient.cd" />
    <None Remove="Remoting\ApiServer.cd" />
    <None Remove="UpdateInfo.txt" />
    <None Remove="X组件.txt" />
    <None Remove="说明.txt" />
  </ItemGroup>
  <ItemGroup>
    <Content Include="..\Doc\leaf.png" Link="leaf.png" PackagePath="\" />
  </ItemGroup>
  <ItemGroup>
    <None Include="..\Readme.MD">
      <Pack>True</Pack>
      <PackagePath>\</PackagePath>
    </None>
  </ItemGroup>

</Project>