Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/svn/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Svn 使用cc.net自动发布开发人员工作_Svn_Msbuild_Nunit_Cruisecontrol.net - Fatal编程技术网

Svn 使用cc.net自动发布开发人员工作

Svn 使用cc.net自动发布开发人员工作,svn,msbuild,nunit,cruisecontrol.net,Svn,Msbuild,Nunit,Cruisecontrol.net,我想构建一个开发人员构建项目,然后需要将其发布到服务器,成功发布后,需要根据该开发人员发布构建我的测试项目。基本思想是在任何开发人员在Svn上提交内容时运行此过程 目前我正在使用CC.net和MSBuild。任何人都不知道如何完成这项工作 第一步。SVN上的开发人员提交 第二步。检测Svn上的更改并在生成服务器上进行更新 第三步。使用最近的更改生成项目 第四步。将其发布到服务器 第五步。然后对最近的发布运行测试(我通过使用cc.net、msbuild和nunit成功地完成了此过程)如果您使用的是

我想构建一个开发人员构建项目,然后需要将其发布到服务器,成功发布后,需要根据该开发人员发布构建我的测试项目。基本思想是在任何开发人员在Svn上提交内容时运行此过程

目前我正在使用CC.net和MSBuild。任何人都不知道如何完成这项工作

第一步。SVN上的开发人员提交 第二步。检测Svn上的更改并在生成服务器上进行更新 第三步。使用最近的更改生成项目 第四步。将其发布到服务器
第五步。然后对最近的发布运行测试(我通过使用cc.net、msbuild和nunit成功地完成了此过程)

如果您使用的是项目标记,还可以在其中包含该项目的发布者。 例如:

<project >  
 <tasks>  ... 
 </tasks>   
<publishers> 
 <buildpublisher>   
   <sourceDir>path with built binaries</sourceDir>
   <publishDir>path that will be shared</publishDir>
  </buildpublisher> 
 </publishers> 
</project>

... 
带内置二进制文件的路径
将共享的路径

无论构建成功还是失败,都将执行CC.Net中的publisher部分。您需要将“发布到生成服务器”作为任务添加到“任务”部分下-将其放在上一个生成步骤之后

这将导致CC.Net仅在所有以前的“任务”完成时“发布到生成服务器”,而不会引发错误代码

通常,如果您知道在DOS.bat文件中“发布到构建服务器”需要什么,请执行以下操作:

<tasks>
    <msbuild>
        <executable>C:\WINDOWS\Microsoft.NET\Framework\v3.5\MSBuild.exe</executable>
        <workingDirectory>c:\Somewhere</workingDirectory>
        <projectFile>Something.sln</projectFile>
        <buildArgs>/noconsolelogger /p:Configuration=Debug /v:m</buildArgs>
        <targets>Build</targets>
        <timeout>720</timeout>
        <logger>C:\program files (x86)\CruiseControl.NET\server\ThoughtWorks.CruiseControl.MsBuild.dll</logger>
    </msbuild>
    <exec>
        <executable>C:\program files (x86)\CruiseControl.NET\server\PublishToServer.bat</executable>
        <baseDirectory>C:\somewhere</baseDirectory>
        <buildArgs></buildArgs>
        <buildTimeoutSeconds>9000</buildTimeoutSeconds>
    </exec>
</tasks>

C:\WINDOWS\Microsoft.NET\Framework\v3.5\MSBuild.exe
某处
某物
/noconsolelogger/p:Configuration=Debug/v:m
建造
720
C:\ProgramFiles(x86)\CruiseControl.NET\server\ThoughtWorks.CruiseControl.MsBuild.dll
C:\ProgramFiles(x86)\CruiseControl.NET\server\PublishToServer.bat
某处
9000

> SLAWEKG指出,您可以使用BudidPuisher,它将执行<强> > 。如果构建成功,但是我仍然发现使用批处理文件比使用BudidPuisher的可用性更能配置复制。

您也可以考虑将“推”写入MS构建脚本中。这将为您提供Sam所说的灵活性和控制,并确保仅在生成成功时才进行发布。

我尝试过使用此方法,但它不是发布,而是将源目录中的所有文件复制到目标目录。我想要的是在服务器上发布webite。知道怎么做吗?知道怎么写一个Dos.bat文件来发布吗。你能把密码寄给我吗