重命名app.config

时间:2015-03-03 20:39:42

标签: c# monodevelop xbuild

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

目前,我已配置PreBuild脚本,可将正确的文件从project_a.configproject_b.config复制到app.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

1 个答案:

答案 0 :(得分:1)

  

不幸的是,XBuild在执行时不执行PreBuild脚本   从命令行运行,所以我必须先进行复制   建筑物。

你的这种假设是错误的。 PreBuild事件在xbuild中工作正常,就像在MSBuild中一样。什么不起作用的是一个非跨平台的脚本,例如使用cmd.execopy命令(在Unix中称为cp),仅存在于Windows中。

要防止出现此问题,您需要在xbuild中使用MSBuild条件,例如here解释的条件。