最近在项目的编译工作中遇到这样一个问题:

我们的产品中附带有一个示例程序,最近的一个版本在做安装包时,希望能够在安装结束时对示例程序自动进行编译。

这里的编译跟产品的编译就有些区别了,产品的编译是由编译人员在编译服务器上进行的,在编译说明书中说明了要在编译服务器上配置静态代码分析(FxCop)的安装路径,这样编译时(服务器上编译是使用的TFSTeam build,其内核仍然是msbuild),会自动运行静态代码分析(需要预先在team build的配置中进行配置)。

示例程序的编译是在用户客户端用msbuild编译的,程序中设置了默认进行静态代码分析。而用户的客户端有可能只有vsts而没有FxCopFxCop可能会被卸载掉),即使有FxCop而要求用户去配FxCop的环境变量也不够友好,这样的话,编译就会出现问题。 

解决办法:使用msbuildproperty参数。

Msbuild
property参数使用:

/property:<n>=<v>  设置或重写这些项目级属性。<n>

                    属性名,<v> 为属性值。请使用

                    分号或逗号分隔多个属性,或者

                    分别指定每个属性。(缩写为: /p)

Msbuild的脚本(还可能设置其它参数,这里忽略掉了):

msbuild GlobalBank.sln /property:RunCodeAnalysis=false

其实/property参数就是设置键值对,设置以后,参数的优先级高于项目属性的设置。


posted on 2007-12-05 13:18  赤脚小子  阅读(1833)  评论(1编辑  收藏  举报