如何包装ASP.NET Web应用程序带有Visual Studio?
-
03-10-2019 - |
题
我得到了测试服务器,也想用于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.dll84总数,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.dll27总计,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中需要的所有依赖项,并阻止您必须手动从开发工作站复制一堆文件。