![]() | Converting Driver Projects From Earlier Versions of Nimbus |
Be sure to make a backup copy of your entire driver solution if it is not maintained in source control.
If the conversion fails at any point, the process must be started again using the original version. Attempting to close and re-open a partially-converted driver will produce unexpected results.
Delete the following items, as they easily become invalid between Visual Studio Versions, and they are automatically re-generated by Visual Studio upon opening a solution.
.vs folder
.VC.db file
The conversion can take several minutes, or longer, particularly for larger driver projects.
If you encounter issues that cannot easily be resolved, submit a case to support@pacificmindworks.com.
Please be prepared to supply your entire original solution when requesting support, as conversion failures are difficult to reproduce without the exact project being converted.
Nimbus performs a number of required transforms to your driver solution in order to fully migrate it to the latest version. While this topic does not provide an exhaustive listing of all of these modifications, there are some that are helpful to be aware of, as they can influence how, and if, the project builds successfully immediately after conversion.
![]() |
---|
All changes described here pertain to IVI.NET drivers (except for Directory.Build.props mentioned below). Nimbus 7 introduces no new features for IVI-COM or IVI-C drivers. |
All driver member attributes, such as DriverMethod, DriverProperty, Simulation, NotSupported, and many others, are removed from the driver. Nimbus no longer uses code weaving to achieve the functionality that was specified by these attributes. Instead, Nimbus directly injects preamble code into the body of each method and property. The project converter sweeps across the entire driver and converts each of these attributes into the corresponding preamble code and injects the result into the beginning of each method or property implementation.
The target framework will be updated to at least .NET 4.6.2, depending upon the .NET targeting packs installed on the system. This is necessary because the latest IVI.NET specifications and components dictate .NET Framework 4.0 or greater. However, it has become increasingly inconvenient to acquire the targeting packs for older .NET Framework verisons, such as 4.0 and 4.5. So, Nimbus supports .NET 4.6.2 and greater.
All Reference elements in the project file will be replaced with corresponding PackageReference elements.
If the driver uses VISA.NET, a PackageReference to version 8.0.0 of the IviFoundation.Visa NuGet package will be added. This means client code will need at least this version installed to use the driver.
A Directory.Build.props file will be generated to consolidate many MSBuild properties common to multiple projects in the solution. This is the only change that is performed for IVI-COM and IVI-C drivers.
A Directory.Packages.props file will be generated to consolidate version specifications for the NuGet packages in use by the solution.
The framework shortname suffix (e.g. "Fx20") will be removed from the driver DLL filename. These suffixes are no longer used by IVI.NET drivers.
Because of the change in the driver DLL filename and because the .NET target framework is typically being upgraded, all policy files will be removed from the setup project. The converted driver is compatible with the previous driver from an API perspective, but it is not possible for a policy file to "upgrade" a previous version of the driver to a newer version with a different file name.
The driver and unit test projects will use the <TargetFrameworks> property exclusively, even if the project will not take advantage of the multi-targeting capabilities of Nimbus 7.
Ensure you have a backup copy or that the previous version of the driver is in source control.
Remove the .vs folder from disk.
![]() |
---|
Remove all bin and obj folders from the solution. You may need to navigate to multiple subfolders in the various project solutions to properly clean the solution of binaries that could impact the conversion. |
Open the solution in Visual Studio. If there are any C++ projects in the solution, then you will be prompted by Visual Studio to retarget to use a newer platform toolset. It is typically best to choose the latest.
Once the retargeting has completed, you may see that several of the projects fail to load. This is expected. You will also see a Nimbus node at the top that says Nimbus upgrade required....
Right-click on that node and choose Upgrade driver...
A dialog will appear indicating that the conversion is in progress. The solution may close and re-open several times during the conversion.
![]() |
---|
The conversion process can take several minutes, or longer, especially for larger driver projects. |
A dialog box will appear indicating success or failure.
At this point, the driver will be targeting .NET Framework 4.6.2 (or later if the driver was already targeting a version of .NET Framework later than 4.6.2). If you wish to use the solution to create a .NET Core driver in addition to (or in lieu of) the .NET Framework driver, this can be done very easily by editing the TargetFrameworks project property.
See the topic on multi-targeted Nimbus IVI.NET drivers for important information and additional instructions.