How to make a new editor installation package?

I have installed OpenTAP 9.19.0, written a new GUI editor.exe using visual studio 2019 WPF Application and installed openTAP NuGet into the project.
If I copy all the files of release folder into the openTAP install folder, the editor.exe can be clicked and run normally.
Now I want to make a installation package, so that it can be installed by other users.
Can anyone help me on how to make this editor installation package? Thanks a lot.

There is a chapter in the developer guide explaining all about packaging: Developer Guide / Packaging

In short you need to have a package.xml file, which describes what goes into you package and then build the package using ‘tap package create’.

Thanks for your help. It really works.
As there are six files generated after building, and they all need to be intalled to OpenTAP installation folder to run normally.
Or I have to publish the project to a single file first and then add the single exe into the package.xml.

If we create an OpenTAP Plugin Project, it can build a tapPackage output automatically.
How can I create an OpenTAP Plugin Project and write my own GUI editor.exe in it? Do I need to extend a OpenTAP base class?

The files generated by building process are listed below:
2022/10/18 14:05 1,402 WpfApp22.deps.json
2022/10/18 14:05 13,312 WpfApp22.dll
2022/10/18 14:05 174,592 WpfApp22.exe
2022/10/18 14:05 14,456 WpfApp22.pdb
2022/10/18 14:05 321 WpfApp22.runtimeconfig.dev.json
2022/10/18 14:05 161 WpfApp22.runtimeconfig.json

There is not really a big difference between a normal C# project and an OpenTAP project. When you include the OpenTap nuget package, you get the following imported into your project:

  <PropertyGroup>
    <OpenTapPackageDefinitionPath>package.xml</OpenTapPackageDefinitionPath>
    <CreateOpenTapPackage>false</CreateOpenTapPackage>
    <InstallCreatedOpenTapPackage>true</InstallCreatedOpenTapPackage>
  </PropertyGroup>
  <PropertyGroup Condition="'$(Configuration)' == 'Release'">
    <CreateOpenTapPackage>true</CreateOpenTapPackage>
  </PropertyGroup>

You can set these values as you like, but as long as the OpenTapPackageDefinitionPath points at a file that exists, you should get a TapPackage when you build in release mode.

The package.xml file can be used to bundle all the files you need.

Thanks. It works when I use WPF .NET Framework application project instead of WPF .NET Core application project.
I create a WPF .NET Framework application project, install OpenTAP NuGet package, and add OpenTAP Package Definition to the project. Then change the .dll file to the exe file in the package.xml. When build the project in release mode, it generate a .TapPackage successfully. After I install the .TapPackage by the command:
C:\Program Files\OpenTAP>tap package install “WpfApp23.0.1.0-alpha.TapPackage”
The exe is installed and can run successfully.

The package.xml is listed below:

<?xml version="1.0" encoding="utf-8" ?> This is my OpenTAP plugin package.
1 Like