title: "Source" parameter of the "MIDL" task. Multiple items cannot be passed into a parameter of type "Microsoft.Build.Framework.ITaskItem"
body: <p>I am trying to migrate one of projects earlier in VS2008 to VS2010. On building I get the following error</p>
  
  <p>C:\Program Files\MSBuild\Microsoft.Cpp\v4.0\Microsoft.CppCommon.targets(317,7): error MSB4094: "hdxBinding.idl;hdxBlinking.idl;HDXCommandObject.idl;hdxds.idl;HSCProcessStatus.idl;HSCSelectableWindow.idl" is an invalid value for the "Source" parameter of the "MIDL" task. Multiple items cannot be passed into a parameter of type "Microsoft.Build.Framework.ITaskItem".</p>
  
  <p>On clicking this error, it takes me to the line  Source    ="@(Midl)" inside C:\Program Files\MSBuild\Microsoft.Cpp\v4.0\Microsoft.CppCommon.targets file</p>
  
  <p>A Code Snippet in Microsoft.CppCommon.targets file:</p>
  
  <pre><code>&lt;ItemGroup&gt;
    &lt;Midl Condition="'@(Midl)' != ''"&gt;
      &lt;MinimalRebuildFromTracking   Condition="'$(BuildType)' != 'Build' or '$(ForceRebuild)' == 'true'"&gt;false&lt;/MinimalRebuildFromTracking&gt;
    &lt;/Midl&gt;
  &lt;/ItemGroup&gt;
  
  &lt;PropertyGroup&gt;
    &lt;MidlToolArchitecture Condition="'$(MidlToolArchitecture)' == ''"&gt;$(DefaultToolArchitecture)&lt;/MidlToolArchitecture&gt;
  &lt;/PropertyGroup&gt;
  
  &lt;MIDL
    Condition                           ="'%(Midl.ExcludedFromBuild)'!='true'"
    Source                              ="@(Midl)"
  
    AdditionalIncludeDirectories        ="%(Midl.AdditionalIncludeDirectories)"
    AdditionalOptions                   ="%(Midl.AdditionalOptions)"
    ApplicationConfigurationMode        ="%(Midl.ApplicationConfigurationMode)"
    ClientStubFile                      ="%(Midl.ClientStubFile)"
    CPreprocessOptions                  ="%(Midl.CPreprocessOptions)"
    DefaultCharType                     ="%(Midl.DefaultCharType)"
    DllDataFileName                     ="%(Midl.DllDataFileName)"
    EnableErrorChecks                   ="%(Midl.EnableErrorChecks)"
    ErrorCheckAllocations               ="%(Midl.ErrorCheckAllocations)"
    ErrorCheckBounds                    ="%(Midl.ErrorCheckBounds)"
    ErrorCheckEnumRange                 ="%(Midl.ErrorCheckEnumRange)"
    ErrorCheckRefPointers               ="%(Midl.ErrorCheckRefPointers)"
    ErrorCheckStubData                  ="%(Midl.ErrorCheckStubData)"
    ExcludedInputPaths                  ="$(ExcludePath)"
    GenerateClientFiles                 ="%(Midl.GenerateClientFiles)"
    GenerateServerFiles                 ="%(Midl.GenerateServerFiles)"
    GenerateStublessProxies             ="%(Midl.GenerateStublessProxies)"
    GenerateTypeLibrary                 ="%(Midl.GenerateTypeLibrary)"
    HeaderFileName                      ="%(Midl.HeaderFileName)"
    IgnoreStandardIncludePath           ="%(Midl.IgnoreStandardIncludePath)"
    InterfaceIdentifierFileName         ="%(Midl.InterfaceIdentifierFileName)"
    LocaleID                            ="%(Midl.LocaleID)"
    MkTypLibCompatible                  ="%(Midl.MkTypLibCompatible)"
    OutputDirectory                     ="%(Midl.OutputDirectory)"
    PreprocessorDefinitions             ="%(Midl.PreprocessorDefinitions)"
    ProxyFileName                       ="%(Midl.ProxyFileName)"
    RedirectOutputAndErrors             ="%(Midl.RedirectOutputAndErrors)"
    ServerStubFile                      ="%(Midl.ServerStubFile)"
    StructMemberAlignment               ="%(Midl.StructMemberAlignment)"
    SuppressCompilerWarnings            ="%(Midl.SuppressCompilerWarnings)"
    SuppressStartupBanner               ="%(Midl.SuppressStartupBanner)"
    TargetEnvironment                   ="%(Midl.TargetEnvironment)"
    TypeLibFormat                       ="%(Midl.TypeLibFormat)"
    TypeLibraryName                     ="%(Midl.TypeLibraryName)"
    UndefinePreprocessorDefinitions     ="%(Midl.UndefinePreprocessorDefinitions)"
    ValidateAllParameters               ="%(Midl.ValidateAllParameters)"
    WarnAsError                         ="%(Midl.WarnAsError)"
    WarningLevel                        ="%(Midl.WarningLevel)"
  
    TrackerLogDirectory                 ="%(Midl.TrackerLogDirectory)"
    MinimalRebuildFromTracking          ="%(Midl.MinimalRebuildFromTracking)"
    ToolArchitecture                    ="$(MidlToolArchitecture)"
    TrackerFrameworkPath                ="$(MidlTrackerFrameworkPath)"
    TrackerSdkPath                      ="$(MidlTrackerSdkPath)"
  
    TLogReadFiles                       ="@(MIDLTLogReadFiles)"
    TLogWriteFiles                      ="@(MIDLTLogWriteFiles)"
    ToolExe                             ="$(MIDLToolExe)"
    ToolPath                            ="$(MIDLToolPath)"
    TrackFileAccess                     ="$(TrackFileAccess)"
  
    AcceptableNonZeroExitCodes          ="%(Midl.AcceptableNonZeroExitCodes)"
    YieldDuringToolExecution            ="$(MidlYieldDuringToolExecution)"
    &gt;
  &lt;/MIDL&gt;
  </code></pre>
  
  <p></p>
  
  <p>Can somebody please tell me whats going wrong here. This is driving me crazy!!!!!!</p>