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)