The migration of articy:draft X to .NET 8 with version 4.1 requires changes to all csproj-files in order for the sources to be built correctly against this new target. This also includes any MDK plugin articy:draft X should be compatible with.
The easiest way to migrate your own plugins is to create a new, empty plugin project using the DevKit Tools plugin that ships with articy:draft X (see Per plugin project setup) and copy all your originial source and resource files into this new project. Follow the step-by-step guide below to achieve that:
Use the DevKit Tools plugin to create a new, empty plugin project using exactly the same plugin-id (namespace) as your existing plugin.
Copy all your source and resource files from the plugin you want to migrate into the newly create project. Allow overwriting of PluginTexts*.* and PluginManifest.xml. Don't overwrite the newly created project file (*.csproj)!
Edit your Properties/AssemblyInfo.cs file and remove all assembly-versioning related entries. You can specify them in the "Packaging/General" section of your project properties or add them manually, directly into the global "PropertyGroup" of the csproj file. This might look something like:
<AssemblyTitle>Articy.AssetsToEntities</AssemblyTitle>
<Company>Articy Software GmbH & Co. KG</Company>
<Product>Articy.AssetsToEntities</Product>
<Copyright>Copyright © 2017-2024</Copyright>Make sure that all your resource files (e.g. images) have the "Build Action" and "Copy to Output Directory" values set as required. Copying these files over from your original project will lose the information you had set there.
To prevent clashes with earlier versions of articy:draft X, please set the MinimumArticyVersion to 4.1.0 in the PluginManifest.xml file.
Use the NuGet Package Manager to add required depenencies. Keep in mind that the dependencies need to target at least .NET Standard 2.0 or .NET 5 or higher to be compatible with articy:draft X 4.1.
Now, a recompilation should work. Check if your dependencies are properly copied to the output directory "...\bin\Debug\net8.0-windows\win-x64\"
If you don't see them there you should check your project file (csproj) for the following setting in the global PropertyGroup
<CopyLocalLockFileAssemblies>true</CopyLocalLockFileAssemblies>If your plugin uses Windows Forms, add the following lines to the global PropertyGroup to your project file (csproj).
<UseWinFormsOutOfProcDesigner>False</UseWinFormsOutOfProcDesigner>
<UseWindowsForms>true</UseWindowsForms>As part of the migration to .NET 8, we also updated some of our libaries. While updating JSON.NET should not impact your code, the Excel Library ClosedXML had some API changes. If these changes cause compilation errors, they should be easily fixable. For a guide, take a look at the ClosedXML migration guide here: ClosedXML - Migration from 0.97 to 0.100