Skip to content

Commit 84f4906

Browse files
authored
Cleanup project files; configure Directory.Build.props (#628)
* Cleanup csproj * update * Update
1 parent 434e7be commit 84f4906

File tree

20 files changed

+105
-267
lines changed

20 files changed

+105
-267
lines changed

Directory.Build.props

Lines changed: 46 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,52 @@
11
<Project>
2+
3+
<!-- https://learn.microsoft.com/en-us/visualstudio/msbuild/customize-your-build?view=vs-2022#choose-between-adding-properties-to-a-props-or-targets-file -->
4+
<!-- Processing order: -->
5+
<!-- 1: PropertyGroups - Directory.Build.props -->
6+
<!-- 2: PropertyGroups - csproj -->
7+
<!-- 3: PropertyGroups - Directory.Build.targets -->
8+
<!-- 4: ItemGroups - Directory.Build.props -->
9+
<!-- 5: ItemGroups - csproj -->
10+
<!-- 6: ItemGroups - Directory.Build.targets -->
11+
212
<PropertyGroup>
13+
<!-- Set version information, C# language version, and default to non-packable project -->
14+
<Version>1.6.1</Version>
315
<LangVersion>12</LangVersion>
4-
<TreatWarningsAsErrors>true</TreatWarningsAsErrors>
5-
<WarningsNotAsErrors>$(WarningsNotAsErrors);IDE0005</WarningsNotAsErrors>
16+
<IsPackable>false</IsPackable>
17+
18+
<!-- Set common NuGet package properties -->
19+
<Authors>Raffael Herrmann, Shane Krueger</Authors>
20+
<PackageOwners>Shane Krueger</PackageOwners>
21+
<Copyright>Copyright © 2013-2025 Raffael Herrmann. Copyright © 2024-2025 Shane Krueger. All rights reserved.</Copyright>
22+
<PackageLicenseExpression>MIT</PackageLicenseExpression>
23+
<RepositoryType>git</RepositoryType>
24+
<PublishRepositoryUrl>true</PublishRepositoryUrl>
25+
<PackageRequireLicenseAcceptance>false</PackageRequireLicenseAcceptance>
26+
<PackageReadmeFile>README.md</PackageReadmeFile>
27+
<PackageIcon>nuget-icon.png</PackageIcon>
28+
29+
<!-- Set misc build properties -->
30+
<Deterministic>true</Deterministic>
31+
<ContinuousIntegrationBuild Condition="'$(GITHUB_ACTIONS)' == 'true'">true</ContinuousIntegrationBuild>
32+
<DebugType>embedded</DebugType>
33+
<EmbedUntrackedSources>true</EmbedUntrackedSources>
634
<CheckEolTargetFramework>false</CheckEolTargetFramework>
35+
<SignAssembly>false</SignAssembly>
36+
37+
<!-- Enable analyzers; treat all warnings as errors; disable 'using directive is unnecessary' and XML comment warnings -->
38+
<TreatWarningsAsErrors>true</TreatWarningsAsErrors>
39+
<EnforceCodeStyleInBuild>True</EnforceCodeStyleInBuild>
40+
<GenerateDocumentationFile>true</GenerateDocumentationFile>
41+
<NoWarn>$(NoWarn);CS1591;CS1572;CS1573;CS1587;IDE0005</NoWarn>
42+
<EnableNETAnalyzers>True</EnableNETAnalyzers>
43+
<AnalysisMode>None</AnalysisMode>
744
</PropertyGroup>
45+
46+
<!-- Include README for packable projects -->
47+
<ItemGroup Condition="'$(IsPackable)' == 'true'">
48+
<None Include="$(MSBuildThisFileDirectory)README.md" Pack="true" PackagePath="\" />
49+
<None Include="$(MSBuildThisFileDirectory)nuget-icon.png" Pack="true" PackagePath="\" />
50+
</ItemGroup>
51+
852
</Project>

Directory.Build.targets

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
<Project>
2+
3+
<!-- Define SYSTEM_DRAWING and HAS_SPAN -->
4+
<PropertyGroup>
5+
<DefineConstants Condition="'$(TargetFramework)' != 'net6.0' AND '$(TargetFramework)' != 'netstandard1.3'">$(DefineConstants);SYSTEM_DRAWING</DefineConstants>
6+
<DefineConstants Condition="$([MSBuild]::IsTargetFrameworkCompatible('$(TargetFramework)', 'netcoreapp2.1')) OR '$(TargetFramework)' == 'netstandard2.1'">$(DefineConstants);HAS_SPAN</DefineConstants>
7+
</PropertyGroup>
8+
9+
<!-- Strong name signing for Release builds of packable projects -->
10+
<PropertyGroup Condition="'$(Configuration)' == 'Release' AND '$(IsPackable)' == 'true'">
11+
<SignAssembly>true</SignAssembly>
12+
<DelaySign>false</DelaySign>
13+
</PropertyGroup>
14+
15+
</Project>
-16.5 KB
Binary file not shown.

QRCoder.Xaml/Properties/AssemblyInfo.cs

Lines changed: 0 additions & 35 deletions
This file was deleted.

QRCoder.Xaml/QRCoder.Xaml.csproj

Lines changed: 17 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -1,42 +1,22 @@
1-
<Project Sdk="Microsoft.NET.Sdk">
1+
<Project Sdk="Microsoft.NET.Sdk">
22

33
<PropertyGroup>
4+
<!-- Set essential properties -->
45
<TargetFrameworks>net35;net40;net5.0-windows;net6.0-windows</TargetFrameworks>
5-
<PackageRequireLicenseAcceptance>false</PackageRequireLicenseAcceptance>
6-
<!-- <UseWindowsForms Condition="'$(TargetFramework)' == 'net5.0-windows' or '$(TargetFramework)' == 'net6.0-windows'">true</UseWindowsForms> -->
7-
<UseWPF Condition="'$(TargetFramework)' == 'net5.0-windows' or '$(TargetFramework)' == 'net6.0-windows'">true</UseWPF>
8-
<DefineConstants Condition="'$(TargetFramework)' == 'net5.0-windows'">$(DefineConstants);NET5_0_WINDOWS</DefineConstants>
9-
<DefineConstants Condition="'$(TargetFramework)' == 'net6.0-windows'">$(DefineConstants);NET6_0_WINDOWS</DefineConstants>
10-
<DisableImplicitNuGetFallbackFolder>true</DisableImplicitNuGetFallbackFolder>
11-
</PropertyGroup>
12-
13-
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|AnyCPU'">
14-
<NoWarn />
15-
</PropertyGroup>
6+
<UseWPF Condition="'$(TargetFramework)' == 'net5.0-windows' OR '$(TargetFramework)' == 'net6.0-windows'">true</UseWPF>
7+
<IsPackable>true</IsPackable>
168

17-
<PropertyGroup>
18-
<GenerateAssemblyInfo>false</GenerateAssemblyInfo>
19-
<PackageId>QRCoder.Xaml</PackageId>
20-
<Version>1.6.1</Version>
21-
<Authors>Raffael Herrmann, Shane Krueger</Authors>
22-
<PackageOwners>Shane Krueger</PackageOwners>
23-
<AssemblyName>QRCoder.Xaml</AssemblyName>
24-
<PackageLicenseExpression>MIT</PackageLicenseExpression>
25-
<PackageProjectUrl>https://github.com/Shane32/QRCoder/</PackageProjectUrl>
26-
<PackageIcon>nuget-icon-xaml.png</PackageIcon>
27-
<PackageReadmeFile>nuget-readme-xaml.md</PackageReadmeFile>
28-
<PackageTags>c# csharp qr QRCoder.Xaml qrcode qr-generator qr-code-generator</PackageTags>
29-
<RepositoryUrl>https://github.com/Shane32/QRCoder.git</RepositoryUrl>
30-
<RepositoryType>git</RepositoryType>
9+
<!-- Set NuGet package properties -->
3110
<Description>QRCoder.Xaml is the XamlQRCode-extension for the popular QRCoder .NET library.</Description>
32-
</PropertyGroup>
11+
<PackageTags>c# csharp qr QRCoder.Xaml qrcode qr-generator qr-code-generator</PackageTags>
3312

34-
<ItemGroup>
35-
<None Include="Assets\nuget-icon-xaml.png" Pack="true" PackagePath="\" />
36-
<None Include="Assets\nuget-readme-xaml.md" Pack="true" PackagePath="\" />
37-
</ItemGroup>
13+
<!-- Set strong name and COM properties -->
14+
<AssemblyOriginatorKeyFile>QRCoder.XamlStrongName.snk</AssemblyOriginatorKeyFile>
15+
<ComVisible>true</ComVisible>
16+
<Guid>f9ec6466-b807-40ae-bc05-db9f88967c0c</Guid>
17+
</PropertyGroup>
3818

39-
<ItemGroup Condition=" '$(TargetFramework)' == 'net35' or '$(TargetFramework)' == 'net40' ">
19+
<ItemGroup Condition=" '$(TargetFramework)' == 'net35' OR '$(TargetFramework)' == 'net40' ">
4020
<Reference Include="PresentationCore" />
4121
<Reference Include="PresentationFramework" />
4222
<Reference Include="WindowsBase" />
@@ -46,10 +26,10 @@
4626
<ProjectReference Include="..\QRCoder\QRCoder.csproj" />
4727
</ItemGroup>
4828

49-
<PropertyGroup Condition="'$(Configuration)'=='Release'">
50-
<SignAssembly>true</SignAssembly>
51-
<AssemblyOriginatorKeyFile>QRCoder.XamlStrongName.snk</AssemblyOriginatorKeyFile>
52-
<DelaySign>false</DelaySign>
53-
</PropertyGroup>
29+
<!-- Replace readme -->
30+
<ItemGroup>
31+
<None Remove="../README.md" />
32+
<None Update="README.md" Pack="true" PackagePath="\" />
33+
</ItemGroup>
5434

5535
</Project>
File renamed without changes.

QRCoder.sln

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution
2525
ProjectSection(SolutionItems) = preProject
2626
.editorconfig = .editorconfig
2727
Directory.Build.props = Directory.Build.props
28+
Directory.Build.targets = Directory.Build.targets
2829
global.json = global.json
2930
EndProjectSection
3031
EndProject

QRCoder/Properties/AssemblyInfo.cs

Lines changed: 0 additions & 35 deletions
This file was deleted.

QRCoder/QRCoder.csproj

Lines changed: 8 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -1,43 +1,21 @@
11
<Project Sdk="Microsoft.NET.Sdk">
22

33
<PropertyGroup>
4+
<!-- Set essential properties -->
45
<TargetFrameworks>net35;net40;netstandard1.3;netstandard2.0;netstandard2.1;net5.0;net5.0-windows;net6.0;net6.0-windows</TargetFrameworks>
5-
<PackageRequireLicenseAcceptance>false</PackageRequireLicenseAcceptance>
6-
<DefineConstants Condition="'$(TargetFramework)' != 'net6.0' AND '$(TargetFramework)' != 'netstandard1.3'">$(DefineConstants);SYSTEM_DRAWING</DefineConstants>
7-
<DefineConstants Condition="'$(TargetFramework)' == 'net5.0-windows'">$(DefineConstants);NET5_0_WINDOWS</DefineConstants>
8-
<DefineConstants Condition="'$(TargetFramework)' == 'net6.0-windows'">$(DefineConstants);NET6_0_WINDOWS</DefineConstants>
9-
<DefineConstants Condition="$([MSBuild]::IsTargetFrameworkCompatible('$(TargetFramework)', 'netcoreapp2.1')) OR '$(TargetFramework)' == 'netstandard2.1'">$(DefineConstants);HAS_SPAN</DefineConstants>
10-
<DisableImplicitNuGetFallbackFolder>true</DisableImplicitNuGetFallbackFolder>
116
<IsTrimmable Condition="$([MSBuild]::IsTargetFrameworkCompatible('$(TargetFramework)', 'net6.0'))">true</IsTrimmable>
12-
<WarningsAsErrors>$(WarningsAsErrors);CS1591</WarningsAsErrors>
137
<Nullable>enable</Nullable>
14-
</PropertyGroup>
15-
16-
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|AnyCPU'">
17-
<NoWarn />
18-
</PropertyGroup>
8+
<IsPackable>true</IsPackable>
199

20-
<PropertyGroup>
21-
<GenerateAssemblyInfo>false</GenerateAssemblyInfo>
22-
<PackageId>QRCoder</PackageId>
23-
<Version>1.6.1</Version>
24-
<Authors>Raffael Herrmann, Shane Krueger</Authors>
25-
<PackageOwners>Shane Krueger</PackageOwners>
26-
<AssemblyName>QRCoder</AssemblyName>
27-
<PackageLicenseExpression>MIT</PackageLicenseExpression>
28-
<PackageProjectUrl>https://github.com/Shane32/QRCoder/</PackageProjectUrl>
29-
<PackageIcon>nuget-icon.png</PackageIcon>
30-
<PackageReadmeFile>README.md</PackageReadmeFile>
10+
<!-- Set NuGet package properties -->
3111
<PackageTags>c# csharp qr qrcoder qrcode qr-generator qr-code-generator</PackageTags>
32-
<RepositoryUrl>https://github.com/Shane32/QRCoder.git</RepositoryUrl>
33-
<RepositoryType>git</RepositoryType>
3412
<Description>QRCoder is a simple library, written in C#.NET, which enables you to create QR codes.</Description>
35-
</PropertyGroup>
3613

37-
<ItemGroup>
38-
<None Include="Assets\nuget-icon.png" Pack="true" PackagePath="\" />
39-
<None Include="..\README.md" Pack="true" PackagePath="\" />
40-
</ItemGroup>
14+
<!-- Set strong name and COM properties -->
15+
<AssemblyOriginatorKeyFile>QRCoderStrongName.snk</AssemblyOriginatorKeyFile>
16+
<ComVisible>true</ComVisible>
17+
<Guid>e668b98b-83bb-4e60-b33c-4fd5ed9c0156</Guid>
18+
</PropertyGroup>
4119

4220
<ItemGroup Condition=" '$(TargetFramework)' == 'net35' OR '$(TargetFramework)' == 'net40' ">
4321
<Reference Include="PresentationCore" />
@@ -57,10 +35,4 @@
5735
<PackageReference Include="System.Drawing.Common" Version="6.0.0" />
5836
</ItemGroup>
5937

60-
<PropertyGroup Condition="'$(Configuration)'=='Release'">
61-
<SignAssembly>true</SignAssembly>
62-
<AssemblyOriginatorKeyFile>QRCoderStrongName.snk</AssemblyOriginatorKeyFile>
63-
<DelaySign>false</DelaySign>
64-
</PropertyGroup>
65-
6638
</Project>

QRCoderApiTests/QRCoderApiTests.csproj

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@
33
<PropertyGroup>
44
<TargetFramework>net8.0-windows</TargetFramework>
55
<Nullable>enable</Nullable>
6-
<IsTestProject>true</IsTestProject>
76
</PropertyGroup>
87

98
<ItemGroup>

0 commit comments

Comments
 (0)