如何在MSBuild中将自定义属性添加为PropertyGroup的子级?

时间:2010-01-19 07:07:46

标签: msbuild msbuild-propertygroup

我有以下构建脚本,我使用MSBuild运行:

<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Compile" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion ="3.5">
<PropertyGroup>
    <BuildDir Condition=" '$(BuildDir)'==' ' ">$(BaseDir)/build</BuildDir>
    <ProdDir >$(BuildDir)/prod</ProdDir>
    <TestDir>$(BuildDir)/test</TestDir>
    <MMC2SourceDir>SteuerungsZugriffTest/mmc2</MMC2SourceDir>
    <UserSourceDir>SteuerungsZugriffTest/user</UserSourceDir>
    <TestXMLDir>$(BuildDir)/test-results</TestXMLDir>
    <SolutionFile Condition=" '$(SolutionFile)'==' ' ">HMI2.0.sln</SolutionFile>"
    <NUnitTest>nunit-console.exe</NUnitTest>
</PropertyGroup>
<Target Name="Prepare">
    <Message Text="Prepare everything" />
    <MakeDir Directories="$(BuildDir)" />
    <MakeDir Directories="$(ProdDir)" />
</Target>
...

当我现在在命令行上启动脚本时:

D:\MyDir>msbuild /property:BaseDir=D:\MyDir MyScript.build

我在命令行输出中遇到以下错误:

D:\MyDir>MyScript.build(11,78): error MSB4067: Das <#text>-Element unterhalb des <PropertyGroup>-Elements ist unbekannt.

这基本上意味着:元素&lt; #text&gt;是一个不知名的孩子

有人有想法吗?

编辑:对不起,我现在完成了脚本

1 个答案:

答案 0 :(得分:4)

你在这一行的末尾还有一个额外的

<SolutionFile Condition=" '$(SolutionFile)'==' ' ">HMI2.0.sln</SolutionFile>"

它位于标签之外,因此被视为文本元素......