Let’s talk Alteryx Copilot. Join the live AMA event to connect with the Alteryx team, ask questions, and hear how others are exploring what Copilot can do. Have Copilot questions? Ask here!
Start Free Trial

Alteryx Designer Desktop Discussions

Find answers, ask questions, and share expertise about Alteryx Designer Desktop and Intelligence Suite.
SOLVED

Installer for C#/C++ custom tool

360Andy
7 - Meteor

Hi,

I'm new to the Alteryx Community, so forgive me if I'm posting in the wrong place.

 

I have developed a custom tool for Alteryx with a C# GUI and a C++ engine.

But I'm not sure of the best way to create an installer for it.

 

I have created an NSIS installer that lets the user choose an installation folder and then I write an ini file to <Alteryx>\Settings\AdditionalPlugins like:

 

[Settings]

x64Path=C:\InstallFolder
x86Path=C:\InstallFolder
ToolGroup=Preparation

 

This works well enough, however it doesn't seem to provide a mechanism for me to specify a tooltip description of the tool. The only way I can find to specify a description is to add a Node to <Alteryx>\bin\RuntimeData\DefaultSettings.xml like:

 

<Node MergeId="tool.name" Description="Tool Name">
    <Group>Preparation</Group>
    <Metatag>deduplication| data</Metatag>
    <Tooltip>
        <Description>Description of the tool.</Description>
    </Tooltip>
</Node>

 

But I'd rather not have to edit DefaultsSettings.xml - it doesn't seem like the right thing to do.

 

The .yxi tool installer looks promising as it uses a Config.xml that specifies: Description, ToolVersion, etc. but this only seems to support JavaScript plugins and Macros. Can this support dll based tools?

 

I watched a video of the "Unlocking the Secrets of the Alteryx APIs and SDK" from London Inspire by @TashaA but that didn't really have much to say about custom tools built using the C#/C++ SDKs.

 

What is the best way for me to install my custom tool and specify a tooltip description?

(None of the SDK Sample tools have a tooltip description).

 

Thanks in advance to anyone who can help me.

5 REPLIES 5
jdunkerley79
ACE Emeritus
ACE Emeritus

Unfortunately, as it stands that is the only way. 

 

One option is to use a JS GUI rather than a C# one and then you will be able to have the metadata specified. Depends on the complexity of your UI and what you are doing I guess.

 

I believe it is on the roadmap to expand YXI to support C#/C++ but no idea if or when will happen.

 

The NSIS installer is better than my PowerShell based solution I expect, but you are welcome to take a look as you want. https://github.com/jdunkerley/AlteryxAddIns/tree/master/Scripts.

 

I am hoping the next OmniBus version will use attributes in C# to populate the DefaultSettings.xml file but I haven't finished it yet.

360Andy
7 - Meteor

Thanks for this.

 

I don't think I could make a JS GUI work me. My GUI has only a few basic options but also has an "Advanced..." button that launches a Windows Forms DLL that has a tabbed dialog with loads more settings.

 

I guess I could prompt the user to allow me to edit DefaultSettings.xml and if they choose "No" they just don't get tooltips.

Hiblet
10 - Fireball

Slightly off topic, but I know Mr. Dunkerley has the kind of knowledge that few others have, so here goes...  Do you have instructions for how to install Custom tools to a non-Admin Alteryx install?  I cannot get Alteryx to discover my custom tools when Alteryx is installed under a roaming profile, and it is driving me nuts.  Thanks in advance for any forthcoming help.

360Andy
7 - Meteor

Hmmm, I'm wondering if I sidestepped that issue by never installing anything into "Program Files"

Hiblet
10 - Fireball

Possibly.  I have always used the Admin install, and encouraged every client to use that too.  That puts everything under "C:\Program Files", and the custom tool install works.  Just recently I came across someone who had not used the Admin install, and I just could not get the custom tools to appear.  I would really hope the Dev team would hop in here and post up a reply, as this is the kind of thing that *should* be easy to find out.  The documentation would really benefit from including the details too.  Thanks for the response.

Labels
Top Solution Authors