2014-02-13 30 views
0

我有以下執行任務,我msbuild.xml爲什麼在msbuild Visual Studio中啓動xsd執行?

<Target Name="XSD"> 
    <ItemGroup> 
    <XSDEXE Include="lib\xsd\xsd.exe" /> 
    </ItemGroup> 
    <Exec Command="$(XSDEXE) path2myXSD\mySpecial.xsd /o:outPutPath /c /n:mySpecialNamespace" /> 
</Target> 

如果我執行此與

MSBuild.exe msbuild.xml /target:XSD 

在Visual Studio中在設計模式XSD開始。

爲什麼?

回答

1

因爲$(XSDEXE)引用一個屬性,而不是一個的ItemGroup,所以當你執行這個任務,你通過這個命令行:

path2myXSD\mySpecial.xsd /o:outPutPath /c /n:mySpecialNamespace 

要解決這個問題,改變的ItemGroup像一個的PropertyGroup所以:

<PropertyGroup> 
    <XSDEXE>lib\xsd\xsd.exe</XSDEXE> 
</PropertyGroup> 

對於額外的信用,使診斷日誌讓你快速診斷問題。

msbuild.exe <your arguments> /fl5 /flp5:Verbosity=diag;logfile=msbuild.log 
+0

thx,這正是我需要的! – punker76

相關問題