C++/ATL 10.0 - TRACKER.EXE can't find MIDL.EXE

We have a C++/ATL DLL that won't compile on our build server.  The server has the Windows SDK and whatnot for MSBuild, but does not have VS2010 installed.  In this scenario, the MIDL.EXE file is located in C:\Program Files\Microsoft SDKs\Windows\v7.1\bin\, the directory preceeding the TRACKER.EXE.  It would seem, in my case, the command line parameters for TRACKER.EXE should pass "..\midl.exe" instead of just "midl.exe"? 

I tried adding the folder containing midl.exe to the path, but that didn't work.  I tried copying MIDL.EXE and MIDLC.EXE into the same directory as tracker.exe, but that just created whole new errors (presumably because MIDL.EXE could no longer find its support binaries -- I undid this change).

 

 

Target "Midl: (TargetId:26)" in file "C:\Program Files\MSBuild\Microsoft.Cpp\v4.0\Microsoft.CppCommon.targets" from project "C:\ComPAS.Release\ComPAS_MedisoftDriver\ComPAS_MedisoftDriver\ComPAS_MedisoftDriver.vcxproj":
Using "MIDL" task from assembly "Microsoft.Build.CppTasks.Common, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a".
Task "MIDL" (TaskId:15)
Write Tracking Logs: (TaskId:15)
Release\midl.write.1.tlog (TaskId:15)
Release\midl-midlc.write.1.tlog (TaskId:15)
Read Tracking Logs: (TaskId:15)
Release\midl.read.1.tlog (TaskId:15)
Release\midl-midlc.read.1.tlog (TaskId:15)
No output for C:\COMPAS.RELEASE\COMPAS_MEDISOFTDRIVER\COMPAS_MEDISOFTDRIVER\COMPAS_MEDISOFTDRIVER.IDL was found in the tracking log; source compilation required. (TaskId:15)
ComPAS_MedisoftDriver.idl will be compiled as not all outputs are available. (TaskId:15)
midl.exe /D NDEBUG /W1 /nologo /char signed /env win32 /Oicf /h "ComPAS_MedisoftDriver_i.h" /iid "ComPAS_MedisoftDriver_i.c" /proxy "ComPAS_MedisoftDriver_p.c" /tlb "Release\ComPAS_MedisoftDriver.tlb" /robust ComPAS_MedisoftDriver.idl  (TaskId:15)
Tracking command: (TaskId:15)
C:\Program Files\Microsoft SDKs\Windows\v7.1\bin\NETFX 4.0 Tools\Tracker.exe /d C:\Windows\Microsoft.NET\Framework\v4.0.30319\FileTracker.dll /i C:\ComPAS.Release\ComPAS_MedisoftDriver\ComPAS_MedisoftDriver\Release /r C:\COMPAS.RELEASE\COMPAS_MEDISOFTDRIVER\COMPAS_MEDISOFTDRIVER\COMPAS_MEDISOFTDRIVER.IDL /b MSBuildConsole_CancelEvent03d6955223c04027ac1b44224dc6e086  /c midl.exe  /D NDEBUG /W1 /nologo /char signed /env win32 /Oicf /h "ComPAS_MedisoftDriver_i.h" /iid "ComPAS_MedisoftDriver_i.c" /proxy "ComPAS_MedisoftDriver_p.c" /tlb "Release\ComPAS_MedisoftDriver.tlb" /robust ComPAS_MedisoftDriver.idl  (TaskId:15)
TRACKER : error TRK0005: Failed to locate: "midl.exe". The system cannot find the file specified.
(TaskId:15)
(TaskId:15)
The command exited with code 5. (TaskId:15)
Done executing task "MIDL" -- FAILED. (TaskId:15)
Done building target "Midl" in project "ComPAS_MedisoftDriver.vcxproj" -- FAILED.: (TargetId:26)

I’m not sure there is much we can do about this… we have no control on what other individual applications pass to each other. You haven’t said what version of FinalBuilder you are using, which action you are using (VS.NET or MSBuild?), or what settings you are using, so you haven’t really given us much to go on. Are you able to get it to build from the command line?


Ah, I didn’t realize that the TRACKER.EXE launch was outside of your control.

This is build 1380 of FinalBuilder, and it is using the VS.NET action.

I have not tried building it from the command line, I would have to look up how to do that. Currently it only builds properly from Visual Studio GUI.