我有一个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:错误/ 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
服务器
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
12.0 \ Tools \ Microsoft.TeamFoundation.Build.Server.Logger.dll“;” Verbosity = Normal;“
/ p:BuildId =“7d23530d-7349-406f-98b7-5d4f0b9f4101,vstfs:/// Build / Build / 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”

最佳答案

您试图至少根据传递的参数,将同一解决方案(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,但您只是在自找麻烦。

08-26 23:25