我也有测试服务器,我也想用于CI。
计划是设置监听git存储库的Hudson,新提交获取更改,构建解决方案,运行测试(获取输出),如果一切看起来都是绿色和shows Chuck Norris,则设置测试环境Web应用程序。
我正在努力解决第一部分(git端口已关闭atm但这不是问题的重点)和最后一部分。
应用程序本身是使用.Net 4.0,Asp.Net Mvc 2 RTM和一堆第三方工具构建的。
起初 - 无法构建任何东西 - 下载.Net 4.0 sdk套件并且它有所帮助。然后 - 无法构建Web项目 - 只是将C:\Program Files\MSBuild\Microsoft\VisualStudio\v10.0\
文件夹内容从我的开发工作站复制到服务器。然后我不得不自己安装asp.net mvc2 rtm,最终解决方案正在成功构建。
问题出在我从here获取的长鳍金枪鱼构建脚本的最后一步。
这是输出:
C:\ temp \ buildtest> rake -f build.rb (在C:/ temp / buildtest中) Microsoft(R)Build Engine版本4.0.30319.1 [Microsoft .NET Framework,版本4.0.30319.1] 版权所有(C)Microsoft Corporation 2007.保留所有权利。
域名 - > C:\ TEMP \ buildtest的\ src \域\ BIN \发布\ Domain.dll
Infra - > C:\ TEMP \ buildtest的\ src \基础设施\ BIN \发布\ Infra.dll
持久性 - > C:\ TEMP \ buildtest的\ src \持久性\ BIN \发布\ Persistence.dll
应用 - > C:\ TEMP \ buildtest的\ src \软件\ BIN \发布\ App.dll
网络 - > C:\ TEMP \ buildtest的\ src \网络\ BIN \发布\ Web.dll
UI - > C:\ TEMP \ buildtest的\ src \ UI \ BIN \ UI.dll
单位 - > C:\ TEMP \ buildtest的\ src \单元测试\ BIN \发布\ Unit.dll
整合 - > C:\ TEMP \ buildtest的\ src \集成\ BIN \发布\ Integration.dll
xUnit.net控制台测试运行器(32位.NET 4.0.30319.1)
版权所有(C)2007-10 Microsoft Corporation。xunit.dll:版本1.6.1.1521
总共84次,0次失败,0次跳过,耗时9.560秒
测试程序集:C:\ temp \ buildtest \ src \ UnitTests \ bin \ Release \ src \ UnitTests \ bin \ Release \ Unit.dll
xUnit.net控制台测试运行器(32位.NET 4.0.30319.1)
版权所有(C)2007-10 Microsoft Corporation。xunit.dll:版本1.6.1.1521
总共27次,0次失败,0次跳过,耗时34.472秒
测试程序集:C:\ temp \ buildtest \ src \ Integration \ bin \ Release \ src \ Integration \ bin \发布\ Integration.dll未处理的异常:System.TypeInitializationException:类型初始值设定项 r'Microsoft.Build.CommandLine.MSBuildApp'引发了异常。 ---> System.IO.Fi leNotFoundException:无法加载文件或程序集'Microsoft.Build.Engine,Ve rsion = 3.5.0.0,Culture = neutral,PublicKeyToken = b03f5f7f11d50a3a'或其中一个d ependencies。该系统找不到指定的文件。 文件名:'Microsoft.Build.Engine,Version = 3.5.0.0,Culture = neutral,PublicKeyT 奥肯= b03f5f7f11d50a3a” 在Microsoft.Build.CommandLine.MSBuildApp..cctor()
警告:装配绑定日志记录已关闭。 要启用程序集绑定失败日志记录,请设置注册表值[HKLM \ Software \ M. icrosoft \ Fusion!EnableLog](DWORD)为1。 注意:程序集绑定失败会导致一些性能损失 gging。 要关闭此功能,请删除注册表值[HKLM \ Software \ Microsoft \ Fus 离子!EnableLog]。
---内部异常堆栈跟踪结束--- 在Microsoft.Build.CommandLine.MSBuildApp.Main() F,[2010-09-18T00:35:07.728632#2072]致命 - :MSBuild失败。请参阅构建日志F. 或细节 耙子流产了! MSBuild失败。请参阅构建日志详细信息 C:/Ruby191/lib/ruby/gems/1.9.1/gems/albacore-0.1.5/lib/albacore/msbuild.rb:41:在 `build_solution” (通过使用--trace运行任务查看完整跟踪)
C:\ TEMP \ buildtest>
这就是我的albacore脚本的样子:
require 'rubygems'
require 'albacore'
task :default => :publish
desc "Builds Interreg solution"
msbuild :build do |m|
m.path_to_command = File.join(ENV["windir"],
"Microsoft.NET", "Framework", "v4.0.30319", "MSBuild.exe")
m.properties :configuration => :Release
m.targets :Clean, :Build
m.solution = "Interreg.sln"
m.verbosity = "minimal"
end
desc "Runs some tests"
xunit :tests => :build do |x|
x.path_to_command = "lib/xunitnet/xunit.console.clr4.x86.exe"
x.assemblies "src/UnitTests/bin/Release/Unit.dll",
"src/Integration/bin/Release/Integration.dll"
x.html_output = "doc"
end
desc "Publishes web application"
msbuild :publish=>:tests do |m|
m.properties={:configuration=>:Release}
m.targets [:ResolveReferences, :_CopyWebApplication]
m.properties={
:webprojectoutputdire=>"c:/temp/outputdir/",
:outdir=>"c:/temp/outputdir/bin/"
}
m.solution="src/UI/UI.csproj"
end
所以...缺少什么?如何使它工作?
如何使用visual studio打包asp.net web应用程序?
答案 0 :(得分:1)
在CI服务器上安装Windows 7 SDK,其中包括在CI服务器上构建.NET 4应用程序所需的一切。这将处理您在GAC中所需的所有依赖项,并防止您必须从开发工作站手动复制一堆文件。