0

我有两个项目,它们在同一位置使用相同的代码,但使用不同的依赖项和 app.config 文件,并且两个项目都编译为相同的 exe 名称。

目前,我配置了一个 PreBuild 脚本,该脚本将正确的project_a.config文件project_b.configapp.config.

不幸的是,XBuild 在从命令行运行时不会执行 PreBuild 脚本,所以我必须在构建之前进行复制。

有没有办法使用另一个文件作为 app.config?

编辑: 请注意,这仅在 Linux 上运行。

我的 csproj 文件中的条目:

 <Command type="BeforeBuild" 
   command="cp -f MonoMultiJack.Linux.config app.config"
   workingdir="${ProjectDir}" />

这是我的构建脚本:

#!/bin/bash
XBUILD=xbuild
SOLUTION=MonoMultiJack.Lnx.sln
# do some other stuff
${XBUILD} ${SOLUTION} /p:Configuration=Release /t:Clean
${XBUILD} ${SOLUTION} /p:Configuration=Release
4

1 回答 1

1

不幸的是,XBuild 在从命令行运行时不会执行 PreBuild 脚本,所以我必须在构建之前进行复制。

你的这个假设是错误的。PreBuild 事件在 xbuild 中可以正常工作,就像在 MSBuild 中一样。不工作的是非跨平台的脚本,比如 usingcmd.execopycommand(在 Unix 中称为cp),它只存在于 Windows 中。

为防止出现此问题,您需要将 MSBuild 条件与 xbuild 一起使用,例如此处解释的那些。

于 2015-03-04T15:56:03.710 回答