PDA

View Full Version : VMWare Workstation step


ericp
05-23-2008, 02:36 PM
I think I found a bug:

When the checkbox for "Prevent Prompting" is enabled in the Options Tab, I find that every other execution on the same VM machine, it'll error out with:


Error: Command failed: Insufficient permissions


I can run the command over and over again in a DOS prompt w/o issue, which led me to believe something within VBP.

I took a look at the .action file, and starting on line 88 is where the NoPrompt condition is checked.

You open the vmx file, but never close it. When VMWare starts it reads the file for writing, but cannot since VBP has exclusivity to it.

I added

f.close


just after the

f.WriteLine vbCrLf & NoPromptStr

line (line 91)

I don't have this problem anymore.

Maybe fixed for the next revision of VBP?

Btw, this is version 6.7:

Windows Version: 5.1.2600.3.0
Install path: C:\Program Files\VisBuildPro6
SftTree_IX86_U_50.dll version 5.06
unins000.exe version 51.49.0.0
VisBuildCmd.exe version 6.7.0.0
VisBuildPro.exe version 6.7.0.0
VisBuildBld.dll version 6.7.0.0
VisBuildBurn.dll version 6.7.0.0
VisBuildCore.dll version 6.7.0.0
VisBuildDotNET.dll version 6.7.0.0
VisBuildExt.dll version 6.7.0.0
VisBuildLog.dll version 6.7.0.0
VisBuildMisc.dll version 6.7.0.0
VisBuildMS.dll version 6.7.0.0
VisBuildMS2.dll version 6.7.0.0
VisBuildNet.dll version 6.7.0.0
VisBuildSvr.dll version 6.7.0.0
VisBuildSvr.Interop.dll version 1.0.0.0
VisBuildVCS.dll version 6.7.0.0


Thanks!

Eric.

kinook
05-23-2008, 03:21 PM
It does appear that the variable f does not get disposed of (and its file handle closed) until after the action completes (not when f goes out of scope), so when vmrun is called later in the action, it isn't able to open the file. And the fix is to add the explicit close call as you did. Although that code shouldn't even get executed on the 2nd and subsequent invocations of the step (unless the .vmx file is getting replaced with a version that doesn't have that line).