1

我们使用 CCnet 为 .NET Web 应用程序进行持续集成,并且在大多数情况下它运行良好。我们的构建开始需要一些时间,因为我们的主要 Visual Studio 网站项目需要很长时间来编译(验证网站无意义),但我们想到的一项优化是跳过预编译步骤网站上的 HTML、JavaScript 和 CSS 更改(以及其他不影响编译但需要复制的非 ASP.NET 类型)。这在大多数情况下对我们有用,因为我们的大部分更改是 HTML、JavaScript 和 CSS。

CCnet 中是否有任何方法可以识别更改的类型(白名单、黑名单等),并且只针对这些类型的更改运行网站项目的 MSBuild?我查看了文档,这似乎是全有或全无,但我认为值得问问 StackOverflow 的人是否有任何建议。

(是的,我意识到一个长期的解决方案是让网站项目编译得更快,但这需要大量的重构工作,我们目前不愿意投入资源。)

4

2 回答 2

0

我不确定我是否理解正确。如果您不喜欢在对 css、html 等的更改上调用构建,也许过滤的源代码控制块可以完成这项工作?

如果您需要做某事,即使更改涉及 css、html 等,只需跳过一些步骤(预编译),那么我可能会将整个事情分成 2 个项目,与其中一个的过滤源控制连接(排除预编译) 和另一个做所有其余的事情。

或者,也许您可​​以为此编写自己的任务,您可以从条件任务中派生它,或者只编写您自己的条件(我从来没有写过任何任务,所以在这里不能再提供任何建议......)。

我能想到的最后一个解决方法 - 在条件任务中有BuildCondition块 - 您可以执行某些任务(预编译),例如仅在强制构建时执行,因此常规构建将完成所有其余工作,并且当您知道您还需要预编译时您需要手动强制构建。

于 2013-08-20T09:23:08.837 回答
0

我能想到的唯一想法是:

  1. 您可以访问某些 CC.NET 变量。

http://build.sharpdevelop.net/ccnet/doc/CCNET/Integration%20Properties.html

如果您在 msbuild 中编写构建逻辑,则可以检查这些值(在上面的 url 中列出)。不知道里面有没有符合你要求的。

我认为 CC.NET 是一个“花哨的 msbuild.exe 调用者”............

你也可以看看这些。

http://build.sharpdevelop.net/ccnet/doc/CCNET/Dynamic%20Parameters.html

我不认为你可以做你想做的事,但这里有一些提示。

于 2013-08-19T21:39:16.523 回答