我的msbuild.xml中有以下执行任务
<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开头。
为什么?
答案 0 :(得分: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