为什么Nant驱动的MsBuild编译到不同机器上的不同目录?

时间:2009-04-03 20:41:20

标签: visual-studio msbuild x86 nant teamcity

我写了一个Nant脚本,它执行MSBUILD.exe来编译我的开发机器上的项目。在我的开发机器上,项目将其输出构建到bin \ x86 \ Release,我的Nant脚本会压缩该目录的内容。然后我将所有内容提交给SVN并让TeamCity运行执行MSBUILD.exe的Nant脚本来编译项目并压缩输出,但输出是在bin \ Release中创建的,而zip文件是空的,因为它在bin \ x86中查找发布。为什么会这样?

当我在VS.NET 2008中更改配置和平台时,我没有看到项目文件亮起为更改。这些设置是否存储在项目文件,解决方案文件或用户配置文件中,因此不会转移到构建服务器?

2 个答案:

答案 0 :(得分:1)

快速修复:您可以使用标志/属性:OutDir = bin \ x86 \ Release

你必须找到这个的根本原因。可能配置不正确。您可以将配置显式更改为/ p:Configuration = Release

答案 1 :(得分:1)

您确定$ {project.config}指向本地和TeamCity环境中的相同位置吗?

代理并不总是使用sem环境变量作为本地计算机运行。因此,我将开始检查所有属性,并查看它们在本地计算机以及TeamCity中的位置。

对于/p:Configuration=${project.config},您只能运行一个配置,但可以指定更多属性;他们之间:

/ P:配置= $ {project.config}; OUTDIR =仓\ 86 \释放