关于MsBuild 与 U9MsBuild.exe 及构造的版本问题

by 祁宏伟 2014.1.7 14:39

注:脚本执行有风险,对于客户正式环境请在研发指导下执行。

U9构造的时候,原来只能指定一个版本的MsBuild来进行构造。这会导致如果仅选用V4.0***的MsBuild.exe的话,会导致部分老的项目构造出错。

解决办法是: 自己编写了一个U9MsBuild.exe,根据VS的项目文件.csproj来选择用不同的MSBuild来转发调用。

理应的逻辑为,如果TargetFramework 为 V3.5及以下,用V3.5编译,V4.0,则用4.0**的MsBuild来进行编译。

 但:问题是,如果你的VS使用了2010,则其项目文件中ToolVersion 为V4.0 ,则就算使用了TargetFramework为V3.5,也不可用V3.5的编译器来编译,否则,其无法自动加上 System.Core.dll 的引用,而导致如System.Linq这样的命名空间找不到。

       同样,如果你的项目文件中ToolVersion 为 3.5 ,则V4.0的MsBuild.exe 同样也会有相同的错误。  -这个感觉很毛病。

与是: 最终的方式如下:

   仅判断 ToolVersion , 如果是4.0则用4.0的MsBuild来进行编译, 否则均用3.5的来编译。

但这种方式对于OBA的部分项目编译时会导致问题,具体问题忘了,以后补充,解决方案也简单,更改ToolVersion吧。

 

U9MsBuild.rar (5.03 kb)

Tags:

评论 (1) -

Online Slot Games 美国 wrote at 2017/5/6 6:47:04 #

Hi there, its fastidious post about media print, we all understand media is a great source of information.

添加评论



biuquote
微笑得意调皮害羞酷大笑惊讶发呆喜欢可怜尴尬闭嘴噘嘴皱眉伤心抓狂呕吐坏笑漫骂发怒
Loading


RecentComments

评论 RSS

Statistics

989 篇文章
0 个单页
694559 条评论
11 次评分
409017 次访问
访问统计开始于 2019年12月15日
平均日访问 6197 次
当前 90 人在线