FAQ about LabVIEW Project Providers

Why does my project provider work in LabVIEW 2010 or earlier, but not LabVIEW 2011?

In previous versions of LabVIEW to 2011, LabVIEW would recursively search every folder in the \LabVIEW\resource\Framework\Providers directory for provider INI files. To improve performance in LabVIEW 2011, LabVIEW now only searches the \LabVIEW\resource\Framework\Providers\GProviders directory for INI files. All others will be ignored. To solve this, you will need to move your INI file into the \GProviders directory. The good news is that this change is backward compatible so if a provider works in 2011, it should work in older versions as well. Also note that you may need to change file paths to reflect the new relative location of interface VIs to the INI file. More information can be found in the LabVIEW Project Providers Documentation.

Important: If you make any changes to your INI file to resolve this issue or any other issue, you will need to have your INI files re-signed or they will not be recognized in LabVIEW. See below for information on how to do this.

Why does my project provider work in LabVIEW 2009 or later, but not LabVIEW 8.6 or earlier?

In LabVIEW 2009 LabVIEW added the requirement for all provider INI files to have the token "InterfaceVersion=1.0". However if this token exists in INI files for providers in LabVIEW 8.6 and earlier, the provider will not work. To resolve this, remove this token for providers in LabVIEW 8.6 and resign your INI.

Why does my toolbar show up, but the icons appear invisible?

With the new change to LabVIEW 2011 (see above) you must now make all relative paths (for icons and any other files that are accessed) in your provider relative to the INI file. For example if your INI is in the "GProviders" directory, and your VIs and Icons are in the "MyProvider" directory, your relative path in your provider VIs must be "..\MyProvider\MyIcon.png".

How do I sign my INI files so my provider is registered with LabVIEW?

All INI files must be individually signed in order to be recognized in LabVIEW as a valid project provider. You may now use the Project Provider INI File Signer Tool to sign your own INI files.

Note: Any changes to the INI file after being signed will require it to be signed again.

How can I get a VI Server Reference from the Item ID, and vice-versa?

The Item ID is a provider-specific reference that is used throughout the Project Provider API for many things. However it can be also useful to use VI Server to act on this reference with Properties or Methods. It also may be helpful to get the Item ID from an existing ProjectItem VI Server reference.

To get the VI Server Reference from the Item ID, use the following VI:

To get the Item ID from a ProjectItem VI Server Reference use the following VI:

<LabVIEW>\resource\Framework\Providers\API\mxLvGetItemRef.vi

How can I support multiple item types in my provider?

To support multiple item types in one provider, you simple need to enumerate a SupportedType token for each GUID you would like to support. For example if you want to support VIs and Folders, simply have two lines in your INI file:

SupportedType={D60740D6-F254-4BBC-5675-8858F35B810E}

SupportedType={D60740D6-F254-4BBC-5675-8858F35B820E}

Why are item icons being replaced by blue question marks in the project?

It is likely that you are creating a primary provider but listing your SupportedType GUID as an existing item. For example if you choose supported type of your primary provider as a VI, VIs in the project window will show up as below:

To resolve this, you must create a unique GUID for your new project item, and only support that one type in your provider. You can create a GUID using the "mxLvGenerateGuid" VI in the API directory of LabVIEW.

Why do some of my provider VIs get executed as expected and some don't?

It is possible that you don't have the correct pattern for the connector pane. For all Interface and Method VIs the connector pane should match the expected pattern or else they would fail to register in LabVIEW.

I have changed some of my provider VIs, why does my provider still exhibit old functionality?

Provider VIs (Interface and Method VIs) get loaded at LabVIEW launch time. You need to restart LabVIEW for any changes to these VIs to register.

Important Note

The LabVIEW Project Provider framework is an unsupported feature of LabVIEW. The only documentation for it exists in this community group, and it is community supported only. While NI has no plans to modify or break the existing APIs, there is no guarantee that all features will work in future versions of LabVIEW. Please use at your own risk.