首页 文章

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

提问于
浏览
0

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

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

2 回答

  • 1

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

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

  • 1

    你确定$ 指向本地和TeamCity环境中的同一个地方吗?

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

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

    /p:Configuration=$;OutDir=bin\x86\Release

相关问题