- What is Solution Explorer?
- How to Use it
- Where to find it
- Open Source
- Report a Problem
What is Solution Explorer?
The MGI Solution Explorer helps developers group, access and build related projects. This is valuable in large application development where you have used Packed Project Libraries or other techniques to split up your solution. The time saved by splitting up the build can easily be lost in a cumbersome build process. With the MGI Solution Explorer, the build process is captured as data, so it’s easy for anyone on the development team to quickly and correctly perform a build.
A Basic Solution
A basic solution will just be a list of projects. Add a project to the solution by dragging the LabVIEW Project file into the Solution Explorer window. Add as many projects as needed to the solution. Drag and drop the projects to re-order them in the solution. Double click on a project to open it in the LabVIEW development environment. Now all developers have a place to easily access all of the related LabVIEW Projects. When it’s time to build, Just selected ‘Build -> Build Solution (Release)’. The projects will be built in the order they appear in the solution. If the source code of a project hasn’t changed, the project wont be built. That’s it!
The MGI Solution Explorer is an extensible tool for performing or skipping a series of actions called solution items. In the basic solution above all of the items were LabVIEW Project builds, but other types of items are built in, and you can create your own custom items. Need to execute a VI in between building two projects? No problem, add a new item to the solution. Need to execute a operating system command? Again, easy! Just add a new item to the solution.
Built In Solution Items
As explained above, the most basic solution item is a LabVIEW project, but there are four other solution items included in the default MGI Solution Explorer installation. Click the plus arrow in the solution explorer window to add new solution items.
- Code Signer - Digitally Signs code. This expands LabVIEW’s ability to sign code to include signing of Packed Project Libraries.
- LabVIEW Project - Builds LabVIEW build specifications.
- Run VI- Executes a VI.
- Self Extracting Zip - Builds a self extracting zip file. This allows developers to distribute installers and applications in single, easy to use files. See the Self Extracting Zip Files for more information.
- Shell Command - Executes a shell command.
- Sub-Solution - A solution can contain another solution. When the top level solution is built, the sub solution will also be built if necessary.
Custom Solution Items
The MGI Solution Explorer is designed using packed project libraries and a plug in architecture. This means that if you need a solution to perform a custom task (like upload to your company’s FTP for example) it’s possible! All you need to do is write the plugin, then add the item to your solution.
How to Use it
Let’s break this into two broad situations, a simple solution and a multi-project, more complex solution.
Project Scope: A small to medium application developed by a 1 to 2 person team, to be distributed within the same workplace on 3 to 4 machines, possibily more in the future. In this situation you may be inclinded to distribute your build artifacts by copying the VOLUME folder output from LabVIEW’s installer process. Unfortunately, this is somewhat clunky and potentially confusing to users as to what to do after receiving said folder. This is where MGI Solution Explorer can immediately become useful. By creating a solution with a Self Extracting Zip Files you can automate building your execuatble and installer as well as produce a single, easily transfered file from one person or network to another providing a simplified install process to the end user.
Project Scope: A medium to large application, dependent on multiple common libraries, designed around a plug-in architecture, with 3 or more people developing simultaneously, for distribution to multiple offsite locations. In this scenario it’s likely the simulatensously developed plug-in modules are contained in their own .lvproj files along with the common libraries, perhaps as packed project libraries. Building all the individual libraries and modules into one working execuatable is no small task, however this is the exact situation where MGI Solution Explorer excels. Starting with the common libraires (having their own .lvsln [MGI Solution Explorer extentsion] file) called as needed by individual module solutions and in turn those individual module solutions would be inlcuded by a main project solution. Because MGI Solution Explorer can have a .lvsln as data in a solution this whole process is simplified and nicely contained per each dependent solution. The distribution to multiple sites is handled by updating a NIPM feed as final item in the solution.
Where to find it
Distribution and Installation
MGI Solution Explorer is an included-by-default option in LV 2020 and later that is distributed and installed using NI Package manager. An NIPM feed is being maintained so updating can be a breeze. Simply register the appropriate feed in your NIPM installation to receive the updates. Instructions on registering a feed in NIPM.
Finding Solution Explorer in LV 2020 and later
MGI Solution Explorer installs by default in all editions of LabVIEW 2020 and later, creating the menu item Tools -> Advanced -> MGI Solution Explorer…
See the MGI Solution Explorer Source
The MGI Solution Explorer is an open source tool that we’ve developed at MGI. This means that we want your input (both code and ideas). All of the source code is hosted on a public accessible git repository. So if you find a bug or come up with a useful new solution item, you can fix it and push it back up to us, so the community can benefit from it. If you’re not into fixing the code yourself, feel free to create an issue in the issue tracker and we’ll see about fixing it for you. The Solution Explorer is built…. using Solution Explorer. So when you get the code use the solution to navigate all of the related projects.
Report a Problem
Have you found an issue with MGI Solution Explorer? Would you like to make a suggetion for improvement? Submit an issue via gitlab or email us directly at firstname.lastname@example.org