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

问题描述 投票:3回答:2

我有一个ASP.NET Webforms网站项目(请注意,这不是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:\ Builds \ 1 \ TP1 \ MyWebsite_Dev \ src \ Websites \ 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:\ Builds \ 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 Server 12.0 \ Tools \ Microsoft.TeamFoundation.Build.Server.Logger.dll“;”Verbosity = Normal; BuildUri = vstfs:/// Build / Build / 35; IgnoreDuplicateProjects = False; InformationNodeId = 13; TargetsNotLogged = GetNativeManifest,GetCopyToOutputDirectoryItems,GetTargetPath; LogWarnings = True; TFSUrl = http://mytfs:8080/tfs/colletionname;“* WorkflowForwardingLogger,”C:\ Program Files \ Microsoft Team Foundation Server 1 2.0 \工具\ Microsoft.TeamFoundation.Build.Server.Logger.dll “;” 冗长=正常;” / p:BuildId =“7d23530d-7349-406f-98b7-5d4f0b9f4101,vstfs:/// Build / Build / 35”/ p:BuildLabel="MyWebsite_Dev_20141122.13“/ p:BuildTimestamp =”Sun,2014年11月23日01: 22:05 GMT“/p:BuildSourceVersion="LMyWebsite_Dev_20141122.13@$/TP1”/ p:BuildDefinition =“MyWebsite_Dev”

asp.net tfs msbuild msdeploy web-site-project
2个回答
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或者......好吧,似乎没有任何替代方案,你可以尝试添加一个新的配置和用新的.slnAspNetConfiguration编辑MyDevProfile.AspNetCompiler.TargetPath但是你只是在寻找麻烦。


0
投票

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

它是一个相当简单的程序,甚至在拥有数千页的网站上,我在一个人的时间内只用了几天就完成了迁移,而没有影响其他开发人员。

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

© www.soinside.com 2019 - 2024. All rights reserved.