How to setup an OpenTap plugin project to create a 32 bit plugin

I am developing a TAP plugin that references an existing API that resides in a 32 bit DLL with dependencies on other 32 bit DLLs (including the 32 bit version of Keysight.Flo.Licensing.Api.dll). I am using version 9.11.1 of the KS8400 Test Automation and I installed the 32 bit version of that on my PC and chose the Visual Studio integration option during the install.

With Visual Studio 2017, I created a new project based on the OpenTap Plugin (.NET Standard) template. when I build and run that project, visual starts the Editor.exe and loads my plugin, but the Editor version that VS starts is the 64 bit version, where as the Editor that I can launch from my desktop is the 32 bit version. In the VS project I have to set the TargetPlatform to AnyPC, otherwise my plugin won’t load in the debugging session, and my API DLL is built as AnyPC and it will load and run until it gets to the call that does the License check using the Keysight.Flo.Licensing.Api.dll. That DLL is built as x86 and I don’t have a way of generating an AnyPC version of it, So an invalid application format exception is thrown when the execution reaches that point in the code.

The OpenTap Plugin template sets up the project with a reference to an OpenTap Nuget package hosted out of the opentap.io depot and that package is used to generate the local OpenTap binaries that the plugin project needs to reference and the copy of the editor.exe that gets launched when you start a debugging session. While the depot does contain multiple versions of the package, the latest version is a 64 bit only version. I am guessing that at one point one of the older versions is probably 32 bit, but I am not sure how far I would have to go back to get a 32 bit package.

ideally, the opentap.io depot should have both a 64bit and a 32bit copy of the package, but alternatively, the 32 bit installer, could create a local depot with the 32 bit package that I could then point to in the dependencies.

If there is an alternative way of solving this problem that doesn’t involve getting a hold of the 32 bit nuget package, please advise.

Thanks

2 Likes

@rolf_madsen is this something you can help with on the best way to get a 32 bit Dev environment? I know you had some thoughts on this previously

1 Like

@brennen_direnzo, I tried to reproduce this issue but cant. If you can provide an exact way to reproduce it I’ll try try.

1 Like

I think the simplified question is: How do you get a 32 bit Debug/Dev environment. Installing 32 Bit Developer’s System and using that Package Cache as a repo did not seem to work. Assumption is because of the OpenTAP Nuget package.

1 Like

@rolf_madsen - the quickest way to demonstrate the problem is to create a new plugin project using the OpenTap Plugin (.NET Standard) template and when the project is created, change the platform target and the build configuration to x86 (see below):

When you then build and run this project, you will see the error below:

The question is how to setup the environment so that you can build and debug a plugin that targets x86.

1 Like

OK, I can reproduce the issue. It is not really my area though. Not sure if there is any quick fix.

I have added an issue: OpenTAP Nuget 32 bit project support (#498) · Issues · OpenTAP / OpenTAP · GitLab

2 Likes

@rolf_madsen - thanks. I have verified that my plugin when built as release and added to the installed 32 bit TAP editor works fine. so basically what we are missing is a 32 bit development and debugging support.

3 Likes