首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >MSBuild扩展包与MSBuild社区任务

MSBuild扩展包与MSBuild社区任务
EN

Stack Overflow用户
提问于 2011-07-23 12:07:40
回答 3查看 7.9K关注 0票数 12

我刚刚开始第一次制作定制的MSBuild脚本。我看到有两个用于扩展特性的标准选项:MSBuild Extension PackMSBuild Community Tasks

我正在寻找一些关于它们之间的差异的指导,以及为什么我会使用一个而不是另一个,甚至两者都使用。我已经在谷歌上搜索过Bing了,但是只见树木不见森林。如有任何指导,敬请惠顾。

EN

回答 3

Stack Overflow用户

发布于 2011-07-25 06:01:18

我插一句,只值2美分。有几件事--首先,我不会确切地说它们是“标准”选项。无论是早于MSBuild 4.0,还是内联任务和属性函数特性,它们中的许多任务都几乎过时了。我已经编写了上千行MSBuild,并且只需要从这两个库中的任何一个库中执行几次任务。

它们的优点在于它们是非常模块化的。你可以只挑选你需要的程序集和目标文件,并将它们签入你的代码库,而不会被整个实现“卡住”。有时,我会从一个库中挑选任务,而从另一个库中挑选任务,两者都在同一个版本中。与库中的某些东西相比,我总是更喜欢使用简单的MSBuild 4.0特性。我对库中的一些任务很感兴趣,但这些行为根本不是我所需要的,所以我创建了自己的任务( zip任务出现在我的脑海中,因为我想控制与源文件夹无关的组中的压缩)。一旦您必须编写单个自定义任务,那么在同一个程序集中滚动另一个任务就变得非常容易。

最后,我想说的是,这并不是真正的关于库,而是关于库中特定任务的非常具体的需求,使用你需要的东西,不要让你的构建与任何东西纠缠在一起。

票数 8
EN

Stack Overflow用户

发布于 2011-07-27 15:17:04

我目前在工作中使用MSBuild社区任务。我没有接触过其他的扩展,但是我可以在这个库上知道一些事情。

优点:

易于安装的微星Installer)

  • Easy (
  • )。源码是可用的,而且它有BSD许可证,所以可以自由修改。基本上,您只需转到与任务同名的.cs文件,对其进行修改,打开.sln文件并构建解决方案。然后你只需要将输出粘贴到C:\Program Files\MSBuild\MsbuildTasks\
  • ,如果你不想写太多非msbuild的代码,一些扩展是非常有用的。压缩很棒,对文件的RegEx操作也很有用。

代码语言:javascript
运行
复制
- I didn't try other but I've seen there's few interesting tasks like gacutil (installing dll's to be seen globally), creating IIS directories, changing file attributes...  
- And yes, you can do all this tasks with MSBuild, but you will need to use lots of "Exec" commands, or using c# functions on your properties, and the code will be a real mess to read.

缺点:

  • 缺乏有用的文档(可能我搜索得不够好,但我找到的唯一帮助是下载源代码,找到适合您任务的.cs文件并对其进行分析)

代码语言:javascript
运行
复制
- The thing that annoyed me the most, is that there's no list of attributes for tasks on the project website. You need to google it on forums, or go to the code.  

  • 我遇到的唯一问题是RegexReplace用-8保存文件。

我的同事编写了数以千计的sql脚本,都是用ANSI编码的。当我替换其中的内容,并将它们传递给SQLCMD时,它无法解析这些文件,因为在所有UTF-8文件的末尾添加了一个符号(某种编码符号)。我需要转到RegexReplace.cs,更改其中一个函数中的编码参数,然后编译它。所以基本上我需要创建我的fork:)

(两分钟的工作,一个小时向人们解释它是如何工作的)

但是MSBuild解析UTF-8文件没有问题,所以我认为只有在使用外部工具处理文件时才会遇到问题。

摘要:

这是一个有用的工具,易于安装和使用,它可以帮助您的代码更清晰,更容易理解,并可以节省一些时间。我认为最大的问题是文档,但你可以在google中写下任务和库的名称,然后在论坛、博客和这里找到一些代码。

票数 1
EN

Stack Overflow用户

发布于 2013-10-10 01:21:31

我的2美分-我处于这样一种情况:我必须为一个项目快速创建一个构建脚本,该脚本将在一台普通的Windows机器上运行(没有安装TFS和VS.NET )。构建脚本应该执行以下操作-

  1. 从TFS

获取源代码

  1. Build the projects
  2. Execute Unit Tests
  3. Run FxCop,StyleCop,
  4. Code Documentation
  5. 最后,通过电子邮件发送结果

<代码>G213

我不得不超越MSBuild 4.0,因为我想要一种简单的方式来运行上面提到的工具并发送电子邮件。我研究了MSBuild社区任务和MSBuild扩展包。虽然我读到扩展包是一个复杂的健康包,但我还是尝试了一下,但我最终还是使用了Community包,因为与其他包相比,它真的很容易使用,甚至扩展了代码,即使只需要很少或没有文档。在我看来,只有在你有时间了解如何使用它的情况下,扩展包才是一个选择。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6798161

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档