It's definitely hard to diagnose when the same MSI deploys successfully on other machines. I've been trying to get a DirectoryNotFoundException out of CreateVirtualDirectory and cannot find a case where it happens. Even if I give it a bogus physical directory
path, it happily creates it anyway. You don't have a stack trace anywhere in the deploy output?
What version of the Deployment Framework are you using?
What version of Windows Server (and thus IIS)?
Have you overridden the IISMetabasePath property in your .btdfproj?
What else is different or unique about IIS on this machine?
Here's an MSBuild project file that you can use to directly test the task (save as, say, CreateVDirTest.targets):
<UsingTask AssemblyFile="C:\Program Files (x86)\MSBuild\DeploymentFrameworkForBizTalk\5.0\BizTalkDeploymentFramework.Tasks.dll" TaskName="CreateVirtualDirectory" />
<UsingTask AssemblyFile="C:\Program Files (x86)\MSBuild\DeploymentFrameworkForBizTalk\5.0\BizTalkDeploymentFramework.Tasks.dll" TaskName="DeleteVirtualDirectory" />
<CreateVirtualDirectory MetabasePath="IIS://localhost/w3svc/1/Root" Name="TestBTDF" Path="C:\Invalid" />
<DeleteVirtualDirectory MetabasePath="IIS://localhost/w3svc/1/Root" Name="TestBTDF" />
Run MSBuild.exe CreateVDirTest.targets /t:TestCreateVirtualDirectory from an admin Command Prompt. You'll have to change the DLL paths to one of the installed app directories on the server.