Dev Space

Customize and extend the power of Alteryx with SDKs, APIs, custom tools, and more.
SOLVED

How to Install Custom Tools to Alteryx installed in Roaming Profile

Hiblet
10 - Fireball

 

I write custom .Net tools, and I cannot get Alteryx to pick up the tools when Alteryx is installed under a Roaming Profile.  The standard install goes like this...

 

 - Copy the MyTool.DLL and MyTool.PDB files to "C:\Program Files\Alteryx\bin\Plugins\MyTool"

 - Put a MyTool.INI file in "C:\Program Files\Alteryx\Settings\AdditionalPlugins", and set the contents so that the INI file points to the DLL location...

  

[Settings]
x64Path=C:\Program Files\Alteryx\bin\plugins\MyTool
ToolGroup=Developer

 

This works fine when Alteryx is installed to the standard "C:\Program Files" folder, when the user is a local admin.  When Alteryx is installed under a roaming profile, the tools are not found.

 

I try to replicate the install logic to the roaming profile setup, by finding the AlteryxGui.EXE, and assuming that this folder is the relative target bin location.  I try creating a PlugIns\MyTool directory, and a Settings\AdditionalPlugins directory, and follow the logic above, but Alteryx does not discover the tool.  

 

Does anyone have any information on how to install custom .Net tools when Alteryx is installed under a user's roaming profile please?  Thanks in advance for any help.

 

10 REPLIES 10
TashaA
Alteryx Alumni (Retired)

@Hiblet thanks so much for your question!

 

I'm reaching out to the Dev teams to see if we can point you to the right answer.

 

Best,

 

-Tasha

Hiblet
10 - Fireball

Hi @TashaA,

 

Thanks very much, really appreciate it.  If the Dev team can't answer this, no one can. 

 

Much obliged!


Steve

TashaA
Alteryx Alumni (Retired)

@Hiblet quick check in! one of the engineers is still investigating, he did ask what happens if you try installing to %LOCALAPPDATA% - is this something you could try?

 

Thanks!

 

-Tasha

Hiblet
10 - Fireball

Hi @TashaA,

 

I need a bit more than that, if possible.  I have tried pretty much everything I know.  

 

Firstly, there's a DLL part and an INI part, and in the Admin install these files go to different locations. 

 

Also, I would love to get some help from the Dev team on how to solve problems with getting Alteryx to find and show plug-ins.  Sometimes with the Admin installation I have put all the files in the right places, but nothing turns up in Alteryx.  This can be excruciatingly embarrassing, when installing at a client site.  

 

So, help with how to install custom dot net tools to the non-Admin login would be very helpful, and also advice or work-arounds on what to do if Alteryx does not discover a tool.  For example, is there a central DLL folder where Alteryx cannot fail to find a DLL?  What diagnostics are available to show if Alteryx has a problem with a plug-in?

 

Having the ability to write plug-ins is a huge plus for Alteryx.  It means that Alteryx can always be the solution to a problem, even if it does not have the functionality out of the box.  But I cannot say that to clients if I cannot get their tailored tools installed.

 

Any help with details on how to install to the non-admin Alteryx layout would be great, and help with workarounds or what to do when a custom tool is not found automatically, would be fantastic.  

 

Many thanks,


Steve

 

 

TimM
Alteryx Alumni (Retired)

Hey @Hiblet,

 

I can give you the short answers to all of your questions here, and then you can reach out to me directly for more detailed answers.

 


Also, I would love to get some help from the Dev team on how to solve problems with getting Alteryx to find and show plug-ins.

 


Hopefully, I can accomplish that here.

 


 

Also, I would love to get some help from the Dev team on how to solve problems with getting Alteryx to find and show plug-ins.

 

Sometimes with the Admin installation I have put all the files in the right places, but nothing turns up in Alteryx.  This can be

excruciatingly embarrassing, when installing at a client site. 

 

[...]

 

What diagnostics are available to show if Alteryx has a problem with a plug-in?

 Unfortunately, there is no verbose logging around the plugin loading process. Even attaching DebugView, the Plugin Finder does not emit messages.

 

Firstly, there's a DLL part and an INI part, and in the Admin install these files go to different locations. 

 


I believe that the INI should always go to:

 

<install dir>\Settings\AdditionalPlugins

 

where <install dir> is the parent directory of the directory where AlteryxGuiToolkit.dll resides.

 

This INI file should point to a directory containing DLL(s)-- each of which contains.one or more classes conforming to the "AlteryxGuiToolkit.Plugins.IPlugin" interface.

 

 


Also, I would love to get some help from the Dev team on how to solve problems with getting Alteryx to find and show plug-ins.  Sometimes with the Admin installation I have put all the files in the right places, but nothing turns up in Alteryx.  This can be excruciatingly embarrassing, when installing at a client site.  


As far as I know, non-admin installs should not behave any differently from admin installs, but I have not troubleshooted this exact use case in the past.

 

If we can outline steps on how to make this happen consistently, this is definitely something that we can investigate.

 

We can also discuss the plugin loading process in more granular detail if you feel that would be helpful.

 


[...] advice or work-arounds on what to do if Alteryx does not discover a tool.


Launching a YXI tool installer dialog and cancelling (which will install no tools) should still effect a reload of all plugins -- as we do on startup.

 


For example, is there a central DLL folder where Alteryx cannot fail to find a DLL?

 


Yes. This would be:

 

<install dir>\bin\Plugins

 

where "<install dir>\bin" is the location of AlteryxGuiToolkit.dll.

 

 

I hope this starts to answer your questions.

 

 

I look forward to continuing this conversation and discovering the root cause of your issues.

 

In the meantime, I will be investigating the behavioral differences between loading plugins in the non-admin Designer install vs.the admin Designer install.

 

 

Tim.

Hiblet
10 - Fireball

Hi @TimM,

 

Many thanks for your reply.

 

 - No Verbose Logging:

OK, it is what it is, not much we can do about that. 

 

 - INI and DLL Locations:

I have tried mimic'ing the locations for these files, and making sure that the INI file points to the new DLL location, but I have had no joy.  That is what spurred my request to get more info.  Have you tried installing a plug in to a non-Admin install?  I can supply an INI and DLL if you need. 

 

 - Workarounds:

I will try the tip to use <installdir>/bin/Plugins, as opposed to a subdirectory named after the tool.

Can you elaborate on the YXI install method?  Is this any better than re-starting Alteryx, or is a stop-start of Alteryx the same thing?

 

 

The problem is hard to replicate.  I have seen the situation where a DLL is completely ignored by Alteryx, and also where the tool only appears in the Search results, and not in the desired toolbar.  That's bugs for you, though.

 

Many thanks for your reply.  Luckily, the last Windows update completely killed the boot record of one of my machines (thanks Microsoft!) and I have rebuilt Windows on it.  I can use this to do a non-Admin install and then try to get one of my hokey old plug-ins going.  I'll update this with results.

 

Much obliged,


Steve

 

TimM
Alteryx Alumni (Retired)

Hey Steve (@Hiblet),

 


I have tried mimic'ing the locations for these files, and making sure that the INI file points to the new DLL location, but I have had no joy.  That is what spurred my request to get more info.  Have you tried installing a plug in to a non-Admin install?  I can supply an INI and DLL if you need. 

 


 - INI and DLL Locations:

If you give me your INI and DLL, I will definitely give this a try.

 

Out of curiosity, when you launch Designer, are you launching with Administrative privilege or not?

Also, this shouldn't matter (don't think plugin loader code has changed in years), but what version are you running?

 

 


 - Workarounds:

I will try the tip to use <installdir>/bin/Plugins, as opposed to a subdirectory named after the tool.

Can you elaborate on the YXI install method?  Is this any better than re-starting Alteryx, or is a stop-start of Alteryx the same thing?

 

 

It is essentially the same thing - without having to wait for a complete restart of Designer.

 


The problem is hard to replicate.  I have seen the situation where a DLL is completely ignored by Alteryx, and also where the tool only appears in the Search results, and not in the desired toolbar.  That's bugs for you, though. 


So, these are all possible scenarios. We load each DLL in its own try/catch, so any exception would be swallowed (and it would appear as if the DLL was completely ignored by Designer). The tool appearing only in the search results is a strange one; it should appear in Laboratory or Unknown if not in its proper category (unless it is a deprecated tool-- in which case you can right-click the tool palette and "Show Deprecated Tools").

 


I can use this to do a non-Admin install and then try to get one of my hokey old plug-ins going.  I'll update this with results. 


 

Once again, with your INI and DLL, I can also find some time to try and replicate the issue. I'm not sure this use case is common, but it should certainly work.

 

Tim.

Hiblet
10 - Fireball

Hi @TimM,

 

Apologies for the delayed response, got a bit busy last week.

 

INI and DLL - I can share these with you, no problem.  I can share a Dropbox folder with you, or an example GitHub page is here:

 

https://github.com/Hiblet/ContinuumXmlSlammer

 

I believe I will need you to give me your email address to allow access, probably via private message.

 

 

Admin Privilege:  Is it a requirement?  I am on my own machine, so I am local admin, and I have set up my Alteryx shortcut to start the app with Admin privilege.  It is not really feasible to expect corporate users to do that though, as you will no doubt understand.

 

Version: I am running 11.7, and I am about to install 11.8, non Admin install, to do some experimenting on my other machine.

 

Many thanks for your engagement on this problem.  I will try to replicate on my second machine and let you know how I get on.

 

Cheers,


Steve

Hiblet
10 - Fireball

Quick summary to tie this up for any interested other parties;

 

The non-Admin install goes into %LOCALAPPDATA%, which typically resolves to something like "C:\Users\User\AppData\Local", which means Alteryx resides in a folder like this...

 

"C:\Users\User\AppData\Local\Alteryx"

 

The DLL and PDB should go in a folder named after the tool ("MyTool").  So, for a tool called MyTool, you would have the folder...

 

"C:\Users\User\AppData\Local\Alteryx\bin\Plugins\MyTool"

 

...and the DLL and PDB would go in there.

 


Next, you would need to create the AdditionalPlugins folder under Settings, and put an INI file in there, named after your tool, that points to the DLL.

 

The folder would be...

 

"C:\Users\User\AppData\Local\Alteryx\Settings\AdditionalPlugins"

 

The INI file would sit in the above folder.  It would be called MyTool.INI, and would look like this...

 

  [Settings]

  x64Path=C:\Users\User\AppData\Local\Alteryx\bin\Plugins\MyTool

  ToolGroup=Developer

 

...and then when you next restart Alteryx, it should pick up the tool.

 

But if it doesn't, there are no diags to tell you what's wrong. Harsh realm.

 

I got this working with v 2018.2 today (03-JUL-2018) on a non-Admin install, starting the app without admin privilege.  Hope that helps anyone else who writes custom dotnet tools (it's just me, isn't it...).