feat: convert OpenNest WinForms project to .NET 8 SDK-style

Build errors expected in IO files — netDxf references not yet migrated to ACadSharp.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-03-07 13:23:47 -05:00
parent a6949a390d
commit 263c2d0ae1
3 changed files with 22 additions and 339 deletions

View File

@@ -1,321 +1,43 @@
<?xml version="1.0" encoding="utf-8"?> <Project Sdk="Microsoft.NET.Sdk">
<Project ToolsVersion="12.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup> <PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">x86</Platform>
<ProductVersion>8.0.30703</ProductVersion>
<SchemaVersion>2.0</SchemaVersion>
<ProjectGuid>{1F1E40E0-5C53-474F-A258-69C9C3FAC15A}</ProjectGuid>
<OutputType>WinExe</OutputType> <OutputType>WinExe</OutputType>
<AppDesignerFolder>Properties</AppDesignerFolder> <TargetFramework>net8.0-windows</TargetFramework>
<RootNamespace>OpenNest</RootNamespace> <RootNamespace>OpenNest</RootNamespace>
<AssemblyName>OpenNest</AssemblyName> <AssemblyName>OpenNest</AssemblyName>
<TargetFrameworkVersion>v4.8</TargetFrameworkVersion> <UseWindowsForms>true</UseWindowsForms>
<TargetFrameworkProfile> <ApplicationHighDpiMode>DpiUnaware</ApplicationHighDpiMode>
</TargetFrameworkProfile>
<FileAlignment>512</FileAlignment>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|AnyCPU'">
<DebugSymbols>true</DebugSymbols>
<OutputPath>bin\Debug\</OutputPath>
<DefineConstants>TRACE;DEBUG</DefineConstants>
<Optimize>false</Optimize>
<DebugType>full</DebugType>
<PlatformTarget>AnyCPU</PlatformTarget>
<ErrorReport>prompt</ErrorReport>
<CodeAnalysisRuleSet>MinimumRecommendedRules.ruleset</CodeAnalysisRuleSet>
<UseVSHostingProcess>false</UseVSHostingProcess>
<Prefer32Bit>false</Prefer32Bit>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Release|AnyCPU'">
<OutputPath>bin\Release\</OutputPath>
<DefineConstants>TRACE</DefineConstants>
<Optimize>true</Optimize>
<DebugType>pdbonly</DebugType>
<PlatformTarget>AnyCPU</PlatformTarget>
<ErrorReport>prompt</ErrorReport>
<CodeAnalysisRuleSet>MinimumRecommendedRules.ruleset</CodeAnalysisRuleSet>
<UseVSHostingProcess>false</UseVSHostingProcess>
<Prefer32Bit>false</Prefer32Bit>
</PropertyGroup> </PropertyGroup>
<ItemGroup> <ItemGroup>
<Reference Include="System.IO.Compression" /> <Compile Remove="Controls\LayoutViewGL.cs" />
<Reference Include="netDxf, Version=2023.11.10.0, Culture=neutral, PublicKeyToken=618c63290969e781, processorArchitecture=MSIL">
<HintPath>..\packages\netDxf.2023.11.10\lib\net48\netDxf.dll</HintPath>
</Reference>
<Reference Include="System" />
<Reference Include="System.Data" />
<Reference Include="System.Drawing" />
<Reference Include="System.Windows.Forms" />
<Reference Include="System.Xml" />
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<Compile Include="Actions\Action.cs" /> <ProjectReference Include="..\OpenNest.Core\OpenNest.Core.csproj" />
<Compile Include="Actions\ActionClone.cs" /> <ProjectReference Include="..\OpenNest.Engine\OpenNest.Engine.csproj" />
<Compile Include="Actions\ActionFillArea.cs" /> <PackageReference Include="ACadSharp" Version="3.1.32" />
<Compile Include="Actions\ActionSelect.cs" /> <PackageReference Include="System.Drawing.Common" Version="8.0.10" />
<Compile Include="Actions\ActionSelectArea.cs" /> </ItemGroup>
<Compile Include="Actions\ActionSetSequence.cs" /> <ItemGroup>
<Compile Include="Actions\ActionZoomWindow.cs" /> <Compile Update="Properties\Resources.Designer.cs">
<Compile Include="ColorScheme.cs" />
<Compile Include="Controls\BottomPanel.cs">
<SubType>Component</SubType>
</Compile>
<Compile Include="Controls\DrawControl.cs">
<SubType>Component</SubType>
</Compile>
<Compile Include="Controls\DrawingListBox.cs">
<SubType>Component</SubType>
</Compile>
<Compile Include="Controls\EntityView.cs">
<SubType>Component</SubType>
</Compile>
<Compile Include="Controls\HorizontalLine.cs">
<SubType>Component</SubType>
</Compile>
<Compile Include="Controls\PlateView.cs">
<SubType>Component</SubType>
</Compile>
<Compile Include="Controls\QuadrantSelect.cs">
<SubType>Component</SubType>
</Compile>
<Compile Include="Controls\NumericUpDown.cs">
<SubType>Component</SubType>
</Compile>
<Compile Include="Controls\VerticalLine.cs">
<SubType>Component</SubType>
</Compile>
<Compile Include="GraphicsHelper.cs" />
<Compile Include="Forms\AutoNestForm.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="Forms\AutoNestForm.Designer.cs">
<DependentUpon>AutoNestForm.cs</DependentUpon>
</Compile>
<Compile Include="Forms\CadConverterForm.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="Forms\CadConverterForm.Designer.cs">
<DependentUpon>CadConverterForm.cs</DependentUpon>
</Compile>
<Compile Include="Forms\EditDrawingForm.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="Forms\EditDrawingForm.Designer.cs">
<DependentUpon>EditDrawingForm.cs</DependentUpon>
</Compile>
<Compile Include="Forms\EditNestForm.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="Forms\EditNestForm.Designer.cs">
<DependentUpon>EditNestForm.cs</DependentUpon>
</Compile>
<Compile Include="Forms\FillPlateForm.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="Forms\FillPlateForm.Designer.cs">
<DependentUpon>FillPlateForm.cs</DependentUpon>
</Compile>
<Compile Include="Forms\CutParametersForm.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="Forms\CutParametersForm.Designer.cs">
<DependentUpon>CutParametersForm.cs</DependentUpon>
</Compile>
<Compile Include="Forms\MainForm.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="Forms\MainForm.Designer.cs">
<DependentUpon>MainForm.cs</DependentUpon>
</Compile>
<Compile Include="Forms\EditNestInfoForm.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="Forms\EditNestInfoForm.Designer.cs">
<DependentUpon>EditNestInfoForm.cs</DependentUpon>
</Compile>
<Compile Include="Forms\OptionsForm.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="Forms\OptionsForm.Designer.cs">
<DependentUpon>OptionsForm.cs</DependentUpon>
</Compile>
<Compile Include="Forms\EditPlateForm.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="Forms\EditPlateForm.Designer.cs">
<DependentUpon>EditPlateForm.cs</DependentUpon>
</Compile>
<Compile Include="Forms\SequenceForm.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="Forms\SequenceForm.Designer.cs">
<DependentUpon>SequenceForm.cs</DependentUpon>
</Compile>
<Compile Include="Forms\SetValueForm.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="Forms\SetValueForm.Designer.cs">
<DependentUpon>SetValueForm.cs</DependentUpon>
</Compile>
<Compile Include="Forms\TimingForm.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="Forms\TimingForm.Designer.cs">
<DependentUpon>TimingForm.cs</DependentUpon>
</Compile>
<Compile Include="IO\DxfExporter.cs" />
<Compile Include="IO\DxfImporter.cs" />
<Compile Include="IO\Extensions.cs" />
<Compile Include="IO\NestReader.cs" />
<Compile Include="IO\NestWriter.cs" />
<Compile Include="IO\ProgramReader.cs" />
<Compile Include="LayoutPart.cs" />
<Compile Include="MdiExtensions.cs" />
<Compile Include="MainApp.cs" />
<Compile Include="Properties\AssemblyInfo.cs" />
<Compile Include="ToolStripRenderer.cs" />
<Compile Include="SelectionType.cs" />
<Compile Include="Win32.cs" />
<EmbeddedResource Include="Forms\AutoNestForm.resx">
<DependentUpon>AutoNestForm.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="Forms\CadConverterForm.resx">
<DependentUpon>CadConverterForm.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="Forms\EditDrawingForm.resx">
<DependentUpon>EditDrawingForm.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="Forms\EditNestForm.resx">
<DependentUpon>EditNestForm.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="Forms\FillPlateForm.resx">
<DependentUpon>FillPlateForm.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="Forms\CutParametersForm.resx">
<DependentUpon>CutParametersForm.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="Forms\MainForm.resx">
<DependentUpon>MainForm.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="Forms\EditNestInfoForm.resx">
<DependentUpon>EditNestInfoForm.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="Forms\OptionsForm.resx">
<DependentUpon>OptionsForm.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="Forms\EditPlateForm.resx">
<DependentUpon>EditPlateForm.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="Forms\SequenceForm.resx">
<DependentUpon>SequenceForm.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="Forms\SetValueForm.resx">
<DependentUpon>SetValueForm.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="Forms\TimingForm.resx">
<DependentUpon>TimingForm.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="Properties\Resources.resx">
<Generator>ResXFileCodeGenerator</Generator>
<LastGenOutput>Resources.Designer.cs</LastGenOutput>
<SubType>Designer</SubType>
</EmbeddedResource>
<Compile Include="Properties\Resources.Designer.cs">
<AutoGen>True</AutoGen> <AutoGen>True</AutoGen>
<DependentUpon>Resources.resx</DependentUpon> <DependentUpon>Resources.resx</DependentUpon>
<DesignTime>True</DesignTime> <DesignTime>True</DesignTime>
</Compile> </Compile>
<None Include="app.config" /> <Compile Update="Properties\Settings.Designer.cs">
<None Include="packages.config" />
<None Include="Properties\Settings.settings">
<Generator>SettingsSingleFileGenerator</Generator>
<LastGenOutput>Settings.Designer.cs</LastGenOutput>
</None>
<Compile Include="Properties\Settings.Designer.cs">
<AutoGen>True</AutoGen> <AutoGen>True</AutoGen>
<DependentUpon>Settings.settings</DependentUpon> <DependentUpon>Settings.settings</DependentUpon>
<DesignTimeSharedInput>True</DesignTimeSharedInput> <DesignTimeSharedInput>True</DesignTimeSharedInput>
</Compile> </Compile>
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<None Include="Resources\watermark.png" /> <EmbeddedResource Update="Properties\Resources.resx">
<Generator>ResXFileCodeGenerator</Generator>
<LastGenOutput>Resources.Designer.cs</LastGenOutput>
</EmbeddedResource>
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<ProjectReference Include="..\OpenNest.Core\OpenNest.Core.csproj"> <None Update="Properties\Settings.settings">
<Project>{5a5fde8d-f8db-440e-866c-c4807e1686cf}</Project> <Generator>SettingsSingleFileGenerator</Generator>
<Name>OpenNest.Core</Name> <LastGenOutput>Settings.Designer.cs</LastGenOutput>
</ProjectReference> </None>
<ProjectReference Include="..\OpenNest.Engine\OpenNest.Engine.csproj">
<Project>{0083b9cc-54ad-4085-a30d-56bc6834b71a}</Project>
<Name>OpenNest.Engine</Name>
</ProjectReference>
</ItemGroup> </ItemGroup>
<ItemGroup> </Project>
<None Include="Resources\add.png" />
</ItemGroup>
<ItemGroup>
<None Include="Resources\remove.png" />
</ItemGroup>
<ItemGroup>
<None Include="Resources\save_as.png" />
</ItemGroup>
<ItemGroup>
<None Include="Resources\clear.png" />
</ItemGroup>
<ItemGroup>
<None Include="Resources\clock.png" />
</ItemGroup>
<ItemGroup>
<None Include="Resources\import.png" />
</ItemGroup>
<ItemGroup>
<None Include="Resources\move_first.png" />
</ItemGroup>
<ItemGroup>
<None Include="Resources\move_last.png" />
</ItemGroup>
<ItemGroup>
<None Include="Resources\move_next.png" />
</ItemGroup>
<ItemGroup>
<None Include="Resources\move_previous.png" />
</ItemGroup>
<ItemGroup>
<None Include="Resources\rotate_ccw.png" />
</ItemGroup>
<ItemGroup>
<None Include="Resources\rotate_cw.png" />
</ItemGroup>
<ItemGroup>
<None Include="Resources\save.png" />
</ItemGroup>
<ItemGroup>
<None Include="Resources\zoom_all.png" />
</ItemGroup>
<ItemGroup>
<None Include="Resources\zoom_in.png" />
</ItemGroup>
<ItemGroup>
<None Include="Resources\zoom_out.png" />
</ItemGroup>
<ItemGroup>
<None Include="Resources\doc_new.png" />
</ItemGroup>
<ItemGroup>
<None Include="Resources\doc_open.png" />
</ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
<PropertyGroup>
<PostBuildEvent>if $(ConfigurationName) == Release (
xcopy "$(TargetDir)*.*" "$(SolutionDir)\..\Installer\" /Y
)</PostBuildEvent>
</PropertyGroup>
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
Other similar extension points exist, see Microsoft.Common.targets.
<Target Name="BeforeBuild">
</Target>
<Target Name="AfterBuild">
</Target>
-->
</Project>

View File

@@ -1,35 +0,0 @@
using System.Reflection;
using System.Runtime.InteropServices;
// General Information about an assembly is controlled through the following
// set of attributes. Change these attribute values to modify the information
// associated with an assembly.
[assembly: AssemblyTitle("OpenNest")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("")]
[assembly: AssemblyProduct("OpenNest")]
[assembly: AssemblyCopyright("Copyright © AJ Isaacs 2015")]
[assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")]
// Setting ComVisible to false makes the types in this assembly not visible
// to COM components. If you need to access a type in this assembly from
// COM, set the ComVisible attribute to true on that type.
[assembly: ComVisible(false)]
// The following GUID is for the ID of the typelib if this project is exposed to COM
[assembly: Guid("f99a0ac7-0b95-4c24-b9bc-f18b64d93242")]
// Version information for an assembly consists of the following four values:
//
// Major Version
// Minor Version
// Build Number
// Revision
//
// You can specify all the values or you can default the Build and Revision Numbers
// by using the '*' as shown below:
// [assembly: AssemblyVersion("1.0.*")]
[assembly: AssemblyVersion("0.2.0.0")]
[assembly: AssemblyFileVersion("0.2")]

View File

@@ -1,4 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<packages>
<package id="netDxf" version="2023.11.10" targetFramework="net48" />
</packages>