C# msbuild/csproj执行任务问题

C# msbuild/csproj执行任务问题,c#,msbuild,C#,Msbuild,我的生成服务器(2003)上的msbuild出现问题。我已将问题缩小到csproj文件中的exec任务,我已将其提取到一个非常简单的csproj(如下)中,但仍然没有乐趣,请参见“C:\Documents”错误。这一切在我的本地机器上都可以正常工作 我认为环境变量存在一些问题,但我无法理解。有什么建议吗 输入 MSBuild输出 D:\cc.net working\source\WebBase>msbuild ExecIssue.csproj Microsoft (R) Build Engi

我的生成服务器(2003)上的msbuild出现问题。我已将问题缩小到csproj文件中的exec任务,我已将其提取到一个非常简单的csproj(如下)中,但仍然没有乐趣,请参见“C:\Documents”错误。这一切在我的本地机器上都可以正常工作

我认为环境变量存在一些问题,但我无法理解。有什么建议吗

输入


MSBuild输出

D:\cc.net working\source\WebBase>msbuild ExecIssue.csproj Microsoft (R) Build Engine Version 4.0.30319.1 [Microsoft .NET Framework, Version 4.0.30319.1] Copyright (C) Microsoft Corporation 2007. All rights reserved. Build started 11/10/2010 12:37:50. Project "D:\cc.net working\source\WebBase\ExecIssue.csproj" on node 1 (default t argets). BeforeBuild: echo hello world 'C:\Documents' is not recognized as an internal or external command, operable program or batch file. D:\cc.net working\source\WebBase\ExecIssue.csproj(5,4): error MSB3073: The comma nd "echo hello world" exited with code 1. Done Building Project "D:\cc.net working\source\WebBase\ExecIssue.csproj" (defau lt targets) -- FAILED. Build FAILED. "D:\cc.net working\source\WebBase\ExecIssue.csproj" (default target) (1) -> (BeforeBuild target) -> D:\cc.net working\source\WebBase\ExecIssue.csproj(5,4): error MSB3073: The com mand "echo hello world" exited with code 1. 0 Warning(s) 1 Error(s) Time Elapsed 00:00:00.17 D:\cc.net working\source\WebBase>msbuild ExecIssue.csproj Microsoft(R)生成引擎版本4.0.30319.1 [Microsoft.NET Framework,版本4.0.30319.1] 版权所有(C)微软公司2007。版权所有。 构建开始于2010年10月11日12:37:50。 节点1上的项目“D:\cc.net working\source\WebBase\ExecIssue.csproj”(默认为t 目标)。 建造前: 回声你好世界 “C:\Documents”未被识别为内部或外部命令, 可操作的程序或批处理文件。 D:\cc.net working\source\WebBase\ExecIssue.csproj(5,4):错误MSB3073:逗号 nd“echo hello world”退出,代码为1。 已完成构建项目“D:\cc.net working\source\WebBase\ExecIssue.csproj”(defau lt目标失败。 生成失败。 “D:\cc.net working\source\WebBase\ExecIssue.csproj”(默认目标)(1)-> (在构建目标之前)-> D:\cc.net working\source\WebBase\ExecIssue.csproj(5,4):错误MSB3073:com mand“echo hello world”已退出,代码为1。 0个警告 1个错误 时间流逝00:00:00.17
我会在诊断模式下运行它并将其发送到一个文件,然后在文件中搜索C:\Documents。可能它在某些路径参数中使用了“C:\Documents and settings\”而没有引用它。诊断模式将打印出大多数(如果不是所有)正在使用的属性、项目组、环境变量等。希望它能打印出exec任务所使用的所有属性,因为您只提供了命令参数,它对其余的属性使用了一些默认值

msbuild ExecIssue.csproj /v:Diagnostic > buildout.txt

IIRC,可执行文件和参数是分开的。Exec调用cmd.exe,它似乎以某种方式失败;你能正常工作吗?顺便说一句,你的例子运行良好here@stijn是的,cmd.exe一点问题都没有。您的示例在这里也运行良好。奇怪的是,您的msbuild正在尝试访问“C:\Documents”,您是否编辑了Microsoft.Common.Targets或其他一些全局文件?在我看来,msbuild正在命令行中编写“c:\Documents”。。。在命令行中写入“C:\Documents”会产生相同的错误。@bb不,根本没有碰过它/它们中的任何一个。我现在正在查看该文件和Microsoft.CSharp.targets,以获取任何可能的参考,但没有乐趣。我想你们已经找到了不逃离这条路的地方,接下来的问题是在哪里以及为什么。这对了解这条路很有用,谢谢你们的提示,但遗憾的是并没有什么乐趣。看不到损坏的版本与本地计算机上的版本之间有任何明显差异@alli将把它作为一个服务器问题,并在这个阶段重新安装机器,因为似乎没有什么明显的弹出从这个。谢谢大家的帮助
msbuild ExecIssue.csproj /v:Diagnostic > buildout.txt