ASP.NET网站项目使用TFS 2013构建自动部署

时间:2014-11-23 00:24:27

标签: asp.net tfs msbuild msdeploy web-site-project

我有一个ASP.NET Webforms 网站项目(请注意,这是 NOT WebApplication项目,即没有.csproj。)

我想在网络共享中自动部署文件系统。

我创建了一个配置文件,因此有website.publishproj文件和配置文件xml。

我尝试在Build Definition:

中的MSBuild参数中添加它
  

website.publishproj / p:DeployOnBuild = true   / p:PublishProfile = MyDevProfile /p:VisualStudioVersion=12.0

我收到此错误:

  

MSBUILD:错误MSB1008:只能指定一个项目。开关:   website.publishproj

知道我做错了什么吗?我认为这与网站项目类型有关。

这是我读到的内容:How to use command line msbuild to deploy VS2012 Web Site project without precompiling it?

这是命令:

  

C:\ Program Files(x86)\ MSBuild \ 12.0 \ bin \ amd64 \ MSBuild.exe / nologo   / noconsolelogger   “E:\构建\ 1 \ TP1 \ MyWebsite_Dev \ SRC \网站\ MyWebsite \ MyWebsite.sln”   / nr:False / fl   /flp:"logfile=E:\Builds\1\TP1\MyWebsite_Dev\src\Websites\MyWebsite\MyWebsite.log;encoding=Unicode;verbosity=normal”   / p:SkipInvalidConfigurations = true website.publishproj   / p:DeployOnBuild = true / p:PublishProfile = DropToDemoProfile   /p:VisualStudioVersion=12.0 / m   / P:OUTDIR = “E:\构建\ 1 \ TP1 \ MyWebsite_Dev \ BIN \”   /p:VCBuildOverride="E:\Builds\1\TP1\MyWebsite_Dev\src\Websites\MyWebsite\MyWebsite.sln.vsprops”   / dl:WorkflowCentralLogger,“C:\ Program Files \ Microsoft Team Foundation   服务器   12.0 \工具\ Microsoft.TeamFoundation.Build.Server.Logger.dll “;” 冗长=正常; BuildUri = vstfs:///构建/建立/ 35; IgnoreDuplicateProjects = FALSE; InformationNodeId = 13; TargetsNotLogged = GetNativeManifest,GetCopyToOutputDirectoryItems,GetTargetPath ; LogWarnings = TRUE; TFSUrl = http://mytfs:8080/tfs/colletionname; “* WorkflowForwardingLogger,” C:\程序   Files \ Microsoft Team Foundation Server   12.0 \工具\ Microsoft.TeamFoundation.Build.Server.Logger.dll “;” 冗长=正常;”   / P:BuildId = “7d23530d-7349-406f-98b7-5d4f0b9f4101,vstfs:///构建/建立/ 35”   /p:BuildLabel="MyWebsite_Dev_20141122.13“/ p:BuildTimestamp =”Sun,23   2014年11月01:22:05 GMT“   /p:BuildSourceVersion="LMyWebsite_Dev_20141122.13@$/TP1"   / P:BuildDefinition = “MyWebsite_Dev”

2 个答案:

答案 0 :(得分:2)

您尝试同时构建解决方案(MyWebsite.sln)和项目(website.publishproj)作为同一MSBuild命令的一部分,至少根据传递的参数。

您可以运行msbuild website.publishproj /pp:website.pp.publishproj来查看可以在website.pp.publishproj中调用的目标或要覆盖的属性。

您可以运行set MSBUILDEMITSOLUTION=true && msbuild MyWebsite.sln来查看可以在MyWebsite.sln.metaprojMyWebsite.metaproj中调用的目标或要覆盖的属性。

你的DeployOnBuild命令很好,应该可以工作,我猜你的TFS构建配置指向.sln并传递website.publishproj作为参数而不是主要目标构建,所以要么重新指定它以直接构建.publishproj,要么......好吧,似乎没有其他选择,您可以尝试添加新配置并使用新{.sln进行编辑1}}和AspNetConfiguration然后你只是在寻找麻烦。

答案 1 :(得分:0)

您需要将您的网站升级为Web应用程序,以便其中任何一个都是自动的。

这是一个相当简单的程序,即使在有数千页的网站上,我也只用了一天的时间就完成了迁移,而没有影响其他开发者。

网站功能已完成功能已超过10年。虽然它仍然存在于back-compat产品中,但我不建议使用它。