blob: 87945b89534f6486de198b5d32f294fccd64db2b [file]
<?xml version="1.0" encoding="utf-8"?>
<!--
Licensed to the Apache Software Foundation (ASF) under one
or more contributor license agreements. See the NOTICE file
distributed with this work for additional information
regarding copyright ownership. The ASF licenses this file
to you under the Apache License, Version 2.0 (the
"License"); you may not use this file except in compliance
with the License. You may obtain a copy of the License at
https://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing,
software distributed under the License is distributed on an
"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
KIND, either express or implied. See the License for the
specific language governing permissions and limitations
under the License.
-->
<Project>
<!--
Properties shared by every PLC4Net project. Keeping them here means a
framework or version bump is a one-line change instead of a sweep over
every .csproj.
-->
<PropertyGroup>
<!--
net8.0 (LTS) replaces the previous net452 target. .NET Framework 4.5.2
went out of support in April 2022 and cannot be built on the Linux and
macOS CI runners, which is what kept PLC4Net off the CI matrix.
-->
<TargetFramework>net8.0</TargetFramework>
<LangVersion>latest</LangVersion>
<!-- Full nullable analysis: warnings stay on so a false non-null contract
cannot ship. Public members whose documented contract allows null
(e.g. feature-gated request builders, unknown transport codes) must
annotate that with `?`. -->
<Nullable>enable</Nullable>
<!-- The module builds warning-clean today; keep it that way in CI so a
later change cannot quietly regress it. -->
<TreatWarningsAsErrors>true</TreatWarningsAsErrors>
<RootNamespace>org.apache.plc4net</RootNamespace>
</PropertyGroup>
<PropertyGroup>
<Authors>Apache PLC4X</Authors>
<Copyright>The Apache Software Foundation</Copyright>
<PackageProjectUrl>https://plc4x.apache.org</PackageProjectUrl>
<!-- PackageLicenseUrl is deprecated (NU5125); the SPDX expression replaces it. -->
<PackageLicenseExpression>Apache-2.0</PackageLicenseExpression>
<!-- Overridden by the Maven build via -p:Version=${project.version}. -->
<Version>1.1.0-SNAPSHOT</Version>
<!--
AssemblyVersion is pinned to MAJOR.0.0.0 so it stays stable across every
1.x build; the NuGet package version and FileVersion still track -p:Version.
Without this a consumer that restored two packages built at different
-p:Version values gets a binding mismatch (driver-s7 refs plc4net-spi
1.1.0.0, the packed plc4net-spi.dll is 0.0.1.0).
-->
<AssemblyVersion>1.0.0.0</AssemblyVersion>
<!-- Per-project <Title> stays specific; this is the fallback prose NuGet wants. -->
<Description>Apache PLC4X for .NET (plc4net): API, SPI, and transport foundations for industrial protocol drivers.</Description>
<PackageReadmeFile>PACKAGE.md</PackageReadmeFile>
<RepositoryUrl>https://github.com/apache/plc4x</RepositoryUrl>
<RepositoryType>git</RepositoryType>
<!-- Embed the PDB in the assembly so a symbol server is not needed and every
feed (GitHub Packages does not take .snupkg) carries usable symbols. -->
<DebugType>embedded</DebugType>
</PropertyGroup>
<!-- Ship the package readme in every packable project. -->
<ItemGroup Condition="'$(IsPackable)' != 'false'">
<None Include="$(MSBuildThisFileDirectory)PACKAGE.md" Pack="true" PackagePath="\" Visible="false" />
</ItemGroup>
</Project>