![]() |
1
6
我们使用msbuild进行自动生成,您只需将msbuild指向解决方案文件而不进行任何更改。 另外,为了澄清这一点,我们还使用了一个自动构建服务器(带有.NET插件的Hudson),该服务器使用msbuild来自动化流程。 |
![]() |
2
2
你应该看看 CruiseControl.NET 而不是滚动您自己的自动构建和CI过程。它使之变得更容易,并且可以做额外的工作,比如运行直到测试或代码覆盖工具,或者作为构建过程的一部分。 |
![]() |
3
2
没有,通常。 事实上,如果您做得对,这应该是透明的;您的IDE不应该关心您使用的构建管理器。这就是为什么像CruiseControl.net和Hudson这样的解决方案很好。
您的解决方案结构保持不变。在Visual Studio中,解决方案和项目作为项目组织/打包指南和IDE便利性具有双重作用。您的构建管理器将对此进行反思,以了解需要构建什么。 |
![]() |
4
2
有几个很好的自动和连续的构建工具可用,它们构建在msbuild上。您的项目文件已经 是 msbuild文件-实际上,自vs2005以来,您一直在本地工作站上使用msbuild来创建构建-您可能不知道它:-) 除了CruiseControl.net(JP提到),它绝对值得一看,我还推荐了另外两种产品:
与CruiseControl.net相比,两者都提供了友好的GUI,既可以配置构建,也可以监视构建。 正如我所提到的,两者都建立在您现有的项目和解决方案文件结构之上,所以根本不需要更改其中的任何内容。 你真的不能错在持续集成上!我不能再没有即时的构建反馈了…… 马克 |
![]() |
5
1
我们在工作中使用TeamCity;我们从CruiseControl.net开始,但当另一个开发人员向我指出,否则我将永远维护CC构建时就切换了。;)说真的,TeamCity很容易学习和使用。 当我第一次听说持续集成时,我问了类似的问题。您是否需要手动重写(和维护)所有解决方案和项目?是否需要学习msbuild命令?简短的回答是不。 正如哈维先生所提到的,您可以简单地在一个vs创建的解决方案或项目文件上调用msbuild,它将为您构建它。TeamCity将自动处理此问题。 如果你想要更多的灵活性,我建议 NAnt . 我曾经用手工编写过msbuild脚本,这是一个让人沮丧的练习。nant的语法更清晰,而且(对我来说)更容易使用和阅读。我们将nant用于花哨的东西,当我们想要构建一个项目或解决方案时,再次从nant调用msbuild。Teamcity支持南特。 总之,对我们来说,在Visual Studio中没有什么真正的变化。我们仍然以同样的方式创建和维护我们的项目和解决方案。当我们将它们签入源代码管理(TFS)时,TeamCity会自动获取这些信息,构建解决方案,并运行我们的(nunit)测试。我们还设置了一键部署构建(在TeamCity中使用nant)。 |
![]() |
6
1
感谢大家的回答,但通过一些研究,我发现了一些不同的方法:
所以我发现: 这篇来自Scott Hanselman的旧博客文章 code organisation . 在这里,他使用的是nant而不是msbuild,但其基本概念是通过.bat批处理文件执行所需的nant/msbuild项目。
从这里我可以看到他(很明显)仍然在使用.sln和.csproj为vs保存他的文件-如果需要,可以通过vs构建-但实际上是通过nant.build文件进行构建,通过.bat执行。 另一篇文章(也是斯科特·汉塞尔曼的)展示了你如何 execute external tools (如msbuild或.bat文件)。因此,我创建了一个build.bat文件,如下所示:
(我从 here ;%~f1将mysolution.sln扩展到sln的完全限定路径);-) 然后,我设置了Visual Studio“外部工具”对话框,以便: -命令为“build.bat” -参数为“$(solutionFileName)/v:m” -初始目录为“&(solutiondir)” 然后我在工具栏上添加了一个按钮来执行它。 我可以进一步映射F5键来运行它,而不是标准的Visual Studio内部版本。 不管怎样,这些只是一些想法(不可否认是别人的想法!)但它让我对构建以及如何完成它们有了更多的了解。有一些限制(例如错误列表窗口中不会出现错误),但我相信如果需要,可以克服这些限制。 我将尝试一下,看看我能在msbuild上单独实现什么,然后尝试连接到哈德逊,看看什么厨师!:-) 顺便说一句,如果有人在这一点上仍在阅读,并且对我在自己的答案中所呈现的内容是否是好的/坏的/对的/错的/杀戮过度的/过时的/有缺陷的/无论什么,请随时发表意见。 好一个, Pete。 |
|
Eli Sternbach · dotnet发布-无限循环 1 年前 |
![]() |
Community wiki · 关于简化构建服务器设置的软件的建议 1 年前 |
![]() |
Alan Deep · 以编程方式编译/构建C#项目 7 年前 |