乐筑天下

搜索
欢迎各位开发者和用户入驻本平台 尊重版权,从我做起,拒绝盗版,拒绝倒卖 签到、发布资源、邀请好友注册,可以获得银币 请注意保管好自己的密码,避免账户资金被盗
查看: 33|回复: 2

MSBuild:构建 DefineConstants 值

[复制链接]

23

主题

239

帖子

6

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
327
发表于 2015-3-10 08:06:58 | 显示全部楼层 |阅读模式
我注意到扩展了我的csproj文件的DefineConstants属性的当前值,我想添加为后缀的字符串可以通过以下方式在C#上计算:Int32 min_year = 2009;。
Int32 target_year = 2015;     。
String result = String.Join(“;”, Enumerable.Range(min_year, target_year -。
min_year + 1),Select(n=>“NEWER_THAN_AUTOCAD_” + (n - 1)),ToArray());。
结果: 。
NEWER_THAN_AUTOCAD_2008;NEWER_THAN_AUTOCAD_2009;。
NEWER_THAN_AUTOCAD_2010;NEWER_THAN_AUTOCAD_2011;。
NEWER_THAN_AUTOCAD_2012;NEWER_THAN_AUTOCAD_2013;。
NEWER_THAN_AUTOCAD_2014我需要在 MSBuild 代码中执行相同的逻辑...我尝试通过这种方式做到这一点:$([System.String]::Join(';',[System.Linq.Enumerable]::Range(2009,[MSBuild]::Add(。
[MSBuild]::减法($(CAD_Year),2009,1))。Select(n=>[System.String]::Concat(。
“NEWER_THAN_AUTOCAD_”),[MSBuild]::减去(n,1)。ToArray()))但我在DefineConstants属性中得到这个表达式,而不是计算值。如何在 MSBuild 中执行相同的操作?。

本帖以下内容被隐藏保护;需要你回复后,才能看到!

游客,如果您要查看本帖隐藏内容请回复
回复

使用道具 举报

23

主题

239

帖子

6

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
327
发表于 2015-3-10 23:09:46 | 显示全部楼层
看起来您无法使用
系统。林克
在那里,看到了吗https://msdn.microsoft.com/en-us/library/dd633440.aspx有关可以使用的静态类的列表
如何做到这一点?你真的想吗?当min_year
或target_year
发生变化时,您仍需要编辑文件,我觉得在几年内,纯文本比生成文本的函数更容易让您或其他人理解。如果您想批量进行Grep替换,使用可预测的文本模式也可以更容易地进行Grep替代。如果使用函数,还可能会发生MSBuild更改的风险-它们可能会在将来添加或删除功能并破坏它
总有
System.Text.regular表达式。Regex
(它在允许的类列表中),但我认为我是唯一一个疯狂到可以去那里的人
若要向现有常量添加更多常量,请使用
<div class=“xml geshi”>
<div><定义常量>$(定义常量);这是另一个constant


另一种选择是编写一个控制台应用程序来修改项目文件。PowerShell中的这一个就是一个很好的例子:https://github.com/owen2/AutomaticPackageRestoreMigrationScript/blob/master/migrateToAutomaticPackageRestore.ps1
回复

使用道具 举报

23

主题

239

帖子

6

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
327
发表于 2015-3-10 23:13:28 | 显示全部楼层
哦,等等。我不熟悉MSBuild内联任务,但是。。。https://msdn.microsoft.com/en-us/library/dd722601.aspx
回复

使用道具 举报

发表回复

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

QQ|关于我们|小黑屋|乐筑天下 繁体中文

GMT+8, 2025-2-5 03:52 , Processed in 0.194928 second(s), 69 queries .

© 2020-2025 乐筑天下

联系客服 关注微信 帮助中心 下载APP 返回顶部 返回列表