VMware {code} Community
bvasquez
Contributor
Contributor
Jump to solution

API Upgrade from WorkStation 6.0 to 6.5

Hi, I had posted this in response to another forum but one of the technical support engineers suggested I make a new post instead.

I make automation tools for my company to test with using VMware, we were previously using VMware 6.0.5 for a while and using the VIX COM API (via C#) to automate Powering On, Powering Off, Reverting to Snapshots and Creating Snapshots (so pretty basic stuff). This was working fine for everyone using VMware until clients started upgrading to 6.5.

Once they upgraded to 6.5, they started receiving the error:

22003 – VIX_E_WRAPPER_SERVICEPROVIDER_NOT_FOUND

The specified service provider was not found.


I was looking through the Reference Documentation and found the table for compatibility which had the following

1.1.5

VMwar

1.6.1

Workstation 6.5 or earlier

Workstation-6.5.0

This leads me to believe something that I've not run into with COM APIs before. It seems this is saying that if I create my automation tools using the API version for Workstation 6.5, it will work no problem with 6.0 (I'm assuming limited to functions that exist in both) but not the other way around. In most COM APIs I've dealt with, its usually opposite of what this seems to be telling me. For instance, the National Instruments TestStand COM API (also used in these tools) is always forward compatible. For instance, if I create some code using version 4.0 of the TestStand API and upgrade to 4.1, I will not need to recompile my code or re-link anything. There are other examples as well of this.

My question is really, is this not the case with VMware? Does this mean everytime VMware is updated (even on the maintenance releases by the look of the table), I will need to re-compile and re-distribute my automation tools? If this is the case it seems like a pretty big problem in my opinion. I could understand for major releases (such as from 6.5 to 7.0 or something else) but this seems to be backwards.

If anyone has another way for me to get around this, please let me know. I know I can use vmrun.exe for most of these tasks but I wanted something that gives better notification of being finished and other benefits the API provides. Its important that we use C# (hense the reason for going with COM instead of C API) but any suggestions are appreciated.

0 Kudos
1 Solution

Accepted Solutions
admin
Immortal
Immortal
Jump to solution

This issue should be fixed once you rebuild with the latest version of VIX COM.

This issue has nothing to do with COM, but with VixAllProduct.lib, which is used to determine which implementation library to load. Previously this used a static manifest to determine which library to load, but with Workstation 6.5, this has been replaced with a manifest file. In the future, when Workstation is upgraded, a new manifest file will be included, which should tell VIX COM about the new library that is compatible with the new Workstation release.

Sorry for the confusion and issue with the previous version.

View solution in original post

0 Kudos
2 Replies
bvasquez
Contributor
Contributor
Jump to solution

Sorry the table showed up different than I wanted (should have used the preview). Pretty much it says Workstation 6.0.5's API works with 6.0.5 and below and same with 6.5.

0 Kudos
admin
Immortal
Immortal
Jump to solution

This issue should be fixed once you rebuild with the latest version of VIX COM.

This issue has nothing to do with COM, but with VixAllProduct.lib, which is used to determine which implementation library to load. Previously this used a static manifest to determine which library to load, but with Workstation 6.5, this has been replaced with a manifest file. In the future, when Workstation is upgraded, a new manifest file will be included, which should tell VIX COM about the new library that is compatible with the new Workstation release.

Sorry for the confusion and issue with the previous version.

0 Kudos