我得到了测试服务器,也想用于CI。

计划是为了设置哈德森,该哈德逊聆听git存储库,在新提交的情况下获取更改,构建解决方案,运行测试(拾取输出),设置设置测试环境Web应用程序如果一切看起来都是绿色和绿色 显示查克·诺里斯(Chuck Norris).

我在第一部分(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本身,解决方案最终成功地构建了。

问题是我从Albacore Build脚本中的最后一步 这里.

这是输出:

c: temp buildTest> rake -f build.rb(在c:/temp/buildtest)Microsoft(R)构建引擎版本4.0.30319.1 [Microsoft .NET .NET框架,版本4.0.30319.1]版权所有(C)Microsoft Corporation 2007 2007 2007 。 版权所有。

域 - > c: temp buildtest src domain bin bin repares domain.dll
Infra-> c: temp buildtest src infrastructure bin bin repares infra.dll.dll
持久性 - > c: temp buildtest src persistence bin bin repares persistence.dll
app-> c: temp buildtest src app bin repares app.dll
web-> c: temp buildtest src web bin repares web.dll
ui-> c: temp buildtest src ui bin ui.dll
单位 - > c: temp buildtest src unittests bin bin repares unit.dll
集成 - > c: temp buildtest src intemation bin bin repares intempration.dll
Xunit.net控制台测试跑者(32位.NET 4.0.30319.1)
版权(C)2007-10 Microsoft Corporation。

xunit.dll:版本1.6.1.1521
测试组件:c: temp buildTest src unittests bin bin repares src unittests bin bin repares unit.unit.dll.dll

84总数,0失败,0跳过,花了9.560秒
Xunit.net控制台测试跑者(32位.NET 4.0.30319.1)
版权(C)2007-10 Microsoft Corporation。

xunit.dll:版本1.6.1.1521
测试组件:c: temp buildTest src integration bin bin repares src intement bin bin repares reparts integration.dll.dll

27总计,0失败,0跳过,花了34.472秒

未经处理的异常:system.typeinitializationexception:类型的初始化器fo r'microsoft.build.commandline.msbuildapp'抛出了一个例外。 ---> system.io.io.fi lenotfoundException:无法加载文件或汇编'microsoft.build.engine.engine,ve rsion = 3.5.0.0,culture =中性,publicKeytoken = b03f5f7f11d50a3a'或它的d ependencies之一。该系统找不到指定的文件。文件名:'Microsoft.build.Engine,版本= 3.5.0.0,culture =中性,publicKeyt oken = b03f5f7f11d50a3a'at microsoft.build.commandline.mmsbuildline.mmsbuild.cctor.cctor()

WRN:装配绑定记录被关闭。要启用组件绑定故障记录,请设置注册表值[HKLM Software M iCrosoft fusion!enableLog](dword)(dword)至1。注意:请注意:与汇编绑定失败lo ging相关的性能惩罚。要关闭此功能,请删除注册表值[HKLM Software Microsoft fus ion!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/mmsbuild.rb:41:in`build_solution' - 痕迹)

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

所以...缺少什么?如何使其工作?

如何包装ASP.NET Web应用程序带有Visual Studio?

有帮助吗?

解决方案

在CI服务器上安装Windows 7 SDK,其中包括您在CI服务器上构建.NET 4应用程序所需的所有内容。这将照顾您在GAC中需要的所有依赖项,并阻止您必须手动从开发工作站复制一堆文件。

http://msdn.microsoft.com/en-us/windows/bb980924.aspx

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top