Command line msbuild环境变量未在命令行上展开

Command line msbuild环境变量未在命令行上展开,command-line,msbuild,environment-variables,msbuild-4.0,Command Line,Msbuild,Environment Variables,Msbuild 4.0,我需要使用msbuild从命令行构建一个解决方案,其中一个参数将环境变量作为参数的一部分,但是该变量在执行时没有展开 我使用的命令行是 c:\windows\Microsoft.NET\Framework\v4.0.30319\MSBuild.exe/nologo c:\b\sources\mysolution.sln/m:1/p:SkipinValidConfiguration=true/p:VCBuildToolPath=$VS80COMNTOOLS….\VC\VCPACKAGES/p:Ou

我需要使用msbuild从命令行构建一个解决方案,其中一个参数将环境变量作为参数的一部分,但是该变量在执行时没有展开

我使用的命令行是

c:\windows\Microsoft.NET\Framework\v4.0.30319\MSBuild.exe/nologo c:\b\sources\mysolution.sln/m:1/p:SkipinValidConfiguration=true/p:VCBuildToolPath=$VS80COMNTOOLS….\VC\VCPACKAGES/p:OutDit=c:\b\binaries\/p:Configuration=RELEASE/p:Platform=Mixed/p:VCBuildOverride=c:\b\sources\mysolution.sln.Mixed Platforms.RELEASE.vsprops

我收到的错误是 MSB6004:指定的任务可执行文件位置$VS80COMNTOOLS..\VC\VCPACKAGES\VCBuild.exe无效。[c:\b\sources\mysolution.sln]

我曾尝试在VCBuildToolPath参数周围使用双引号,并使用%VS80COMNTOOLS%,但环境变量从未展开

根据系统,VS80COMNTOOLS设置为c:\Program Files\Microsoft Visual Studio 8\Common7\Tools

请告诉我以这种方式在命令行参数中使用环境变量的语法


顺便说一下,我不需要恢复使用msbuild项目文件,因为我有大量需要应用此命令行参数的解决方案,在许多生成定义中,所有生成定义都是通过TFS触发和生成的。

我不需要为此还原为使用msbuild项目文件,因为我有大量需要应用此命令行参数的解决方案,在许多生成定义中,这听起来与您通常使用MsBuild的目的完全相同?我确实希望使用MsBuild,但我不想使用和MsBuild project来配置此命令行开关。生成是通过TFS2010执行的,因此我在命令提示符类型集中的生成定义的MSBuild arguments选项中指定参数。您是否看到VS80COMNTOOLS的环境变量?如果没有,请在Visual Studio文件夹中的某个位置运行vcvars32.bat,然后查看该环境变量是否存在。环境变量存在,这不是问题所在,如果我从命令提示符run->cmd.exe运行此命令,它将执行得非常好,但是,如果我使用TFS启动生成,我使用的是自定义版本的默认TFS生成模板,并且生成过程参数的MSBuild参数中指定了/p:VCBuildToolPath,则环境变量不会展开当您说正在使用TFS时,是否将此变量发送到生成服务器以执行生成?