2011-07-21 14 views
2

我嘗試添加在給定的目錄到ClCompile元數據的ForcedUsingFiles參數的所有文件。如何將ItemList添加到MSBuild中的默認ItemDefinitionGroup元數據中?

我用下面的代碼:

<ItemGroup> 
    <ForcedUsingFilesList Include="c:\path\to\files\*" /> 
</ItemGroup> 
<ItemDefinitionGroup> 
    <ClCompile> 
    <ForcedUsingFiles>@(ForcedUsingFilesList)</ForcedUsingFiles> 
    </ClCompile> 
</ItemDefinitionGroup> 

但我得到的錯誤

值 「@(ForcedUsingFilesList)」 元數據 「ForcedUsingFiles」 包含項目列表表達。項目列表表達式在默認元數據值上不允許使用 。

任何想法,我怎麼能解決這個問題?

感謝

回答

5

啊,看起來像我需要添加額外的間接層到ITEMLIST轉化爲房產。然後我可以將該屬性粘貼到ItemDefinitionGroup中。

下面的代碼的伎倆,希望有一種更直接的方式,雖然這樣做:

<ItemGroup> 
    <ForcedUsingFilesList Include="c:\path\to\files\*" /> 
    </ItemGroup> 
    <PropertyGroup> 
    <ForcedUsingFilesList2> 
     @(ForcedUsingFilesList->'%(FullPath)') 
    </ForcedUsingFilesList2> 
    </PropertyGroup> 
    <ItemDefinitionGroup> 
    <ClCompile>  
     <ForcedUsingFiles>$(ForcedUsingFilesList2)</ForcedUsingFiles> 
    </ClCompile> 
    </ItemDefinitionGroup> 
+0

@ZimiRizvi有沒有辦法做到這一點沒有中間'PropertyGroup'?我想在這裏做的事情幾乎相同:http://stackoverflow.com/q/26801753/2642059 –

+0

@喬納森 - 眉,我不覺得有什麼。如果可能的話,我不知道這件事 –

+0

@ZimiRizvi如果在接下來的幾天時間來進入這個作爲一個答案:http://stackoverflow.com/q/26801753/2642059我認爲這是接近因爲我會找到一個正確的答案。 –

相關問題