为什么在msbuild Visual Studio中启动xsd执行?

时间:2014-02-13 21:29:08

标签: .net xml visual-studio msbuild xsd

我的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开头。

为什么?

1 个答案:

答案 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