|
|
1
13
我建议使用生成的.csproj文件——事实上,对于生产环境,我认为使用生成的.sln文件是一个好主意。我发现,使用与开发人员相同的解决方案文件会让你受益匪浅。 请注意,.sln文件实际上不是有效的msbuild项目文件——当它们用作输入时,它们会被msbuild本身转换为msbuild项目。狡猾! 出于学习目的,您可能希望记录.csproj的构建并逐步了解正在发生的事情。MSBuild比nant更具声明性,所以请慢慢尝试。 最后,我将把你的.sln或.csproj文件包装在一个带有msbuild任务的连续构建脚本项目中,以构建你的项目并一起运行单元测试。这样,开发人员就不必每次构建时都运行单元测试,但每次集成代码时,单元测试都会运行。是的,确保他们跑得快!任何需要超过一秒钟的东西都应该在计划的(每晚?)构建期间运行。如果需要超过一秒钟的时间,它们可能是更少的单元测试,更多的是用单元测试框架编写的集成测试。 编辑: 我发现了一些有用的附加信息-使用MSBuild 3.5将允许您从.sln文件中获取目标输出,而MSBuild 2.0中不会返回此信息(尽管我认为它在两个版本中都适用于.csproj文件)。您可以将输出(您的构建文件)用作单元测试框架的输入。 |
|
|
2
4
让csproj文件保持原样(正如你所说,你不理解它)。 创建自己的msbuild-proj文件,并通过msbuild任务从主构建文件调用csproj(或sln)。告诉您的CI服务器构建您的构建文件。 这种分离使您更容易添加自己的前后任务(单元测试、冒烟测试SQL脚本、fxcop/其他静态分析等),并且不会破坏您的工作环境。这也意味着你可以在任何你想要的地方(msbuild/ant等)做你的自定义目标。看看codeplex上的MSBuildContrib,以获得额外的好处。 您不需要在构建服务器上使用可视化stuido(除非您有部署项目,除非自上次查看以来也有更改) |
|
|
3
3
创建自己的项目文件(任何以*proj结尾的文件都被MSBuild视为项目文件),并从那里调用您的构建。这样地:
请注意,msbuild也可以在不做任何更改的情况下构建.sln(解决方案文件),这通常比拥有一堆csproj文件更容易。.. |
|
|
4
2
我同时使用NAnt和MSBuild。NAnt已升级为 NAntContrib 所以我得到了 msbuild taks。我可能是临时设置,但到目前为止,我还没有遇到重大问题。也就是说,我也不会创建新的csproj文件,因为我使用的csproj/sln与我在VS2008中使用的相同。 使用msbuild构建项目大大简化了遗留的NAnt脚本(我们使用 csc 任务)。 笔记:
|
|
|
5
1
我个人认为使用.csproj文件是可以的。如果滚动自己的MSBuild项目,其中没有那么多事情是你不必自己添加的。 但是,无论您决定走哪条路,我仍然建议不要将MbUnit作为构建步骤的一部分添加,而是将其作为CC.Net中的一个单独步骤添加。运行单元测试应该是每日CI周期的一部分;然而,它不应该是每个构建的一部分。 |
|
|
6
0
好的,有几件事需要注意。csproj格式已从VS2005更改为VS2008。此外,如果您使用MSBuild,请记住您将无法构建.vdproj(setup)文件;为此,您需要devenv(VS可执行文件)。也就是说,您始终可以创建一个MSBuild任务,该任务调用devenv并为您构建它。 对于您的问题,是构建自己的csproj文件还是使用VS2005创建的文件,我建议您采取一条中间道路: create your own project template ,满足您的需求,让VS来处理剩下的事情。 |
|
|
7
0
使用.csproj作为msbuild的输入是可以的。你可以手动将它的任务添加到csproj中,在从VS编译时会忽略这些任务。但如果你想做一些不平凡的事情,最好创建单独的msbuild脚本。它们可以从csproj文件中引用。 您查看了TFS中的MS Build Server吗? 它与TFS的SourceControl集成,可用于CI。它的项目文件是msbuild脚本。
|
|
|
Jordan · 使用git初始化GitHub存储库的版本控制 1 年前 |
|
|
Viermusketiere · 嵌入式系统开发中如何进行版本控制 2 年前 |
|
|
Luke · 如何使用subversion管理生产/测试/开发配置信息? 16 年前 |
|
|
Carson Myers · 尝试开始使用git 16 年前 |
|
|
betitall · 如何对跨项目共享的资源进行版本控制 16 年前 |