gen*_*ion 4 msbuild teamcity web-applications webdeploy web
我有一个Web站点项目,我试图通过TeamCity和WebDeploy进行部署.
因为这是一个Web站点而不是Web应用程序,所以我没有.vbproj或.csproj文件.
我从这篇文章得出结论,我需要创建一个.publishproj文件,因为MSbuild使用它作为它的构建文件.
但是,当TeamCity调用MSBuild时,它会出现以下错误: -
Failed to start MSBuild.exe. Failed to detect default target(s) in the project file C:\TeamCity\buildAgent\work\d9dda73c7948f14a\MainSite\website.publishproj. Please define targets explicitly in the build configuration options on TeamCity Web UI. Project does not define DefaultTargets or InitialTargets.
我查看了.publishproj文件,并且没有定义Target.
我也跟踪过Troy Hunt 你正在为Web应用程序部署错误的文章,这很好用.
任何人都可以建议我如何从Team City部署网站(非Web应用程序)?
我从未使用过web-site-not-a-web-project,所以请耐心等待.
website.publishproj似乎是创建你触摸的那一刻Build> Publish Web SiteVisual Studio中的菜单和导入Microsoft.WebSite.Publishing.targets,这是好的,因为它是由你的普通web项目()导入的相同的类似目标文件,Microsoft.WebApplication.targets并且两者都导入Microsoft.Web.Publishing.targets.
与Visual Studio创建的任何项目不同,它没有DefaultTargets = Buildnor OutputPath属性,因此您需要Targets在MSBuild构建步骤中明确指定在Microsoft.WebSite.Publishing.targets或中定义的任何目标Microsoft.Web.Publishing.targets.
您可以调用您的标准msbuild website.publishproj /t:Package /p:OutputPath=.\来生成.cmd和对应.zip的obj\Debug\Package.然后只需调用.cmd或传递.zip给msdeploy.exe -source:package=.zip或尝试做/t:Build /p:DeployOnBuild=true但我怀疑你会错过正常的web项目预定义的垃圾.
编辑:
似乎有一个循环引用的地方和你最终包含自身2/3份包装PackageTmp\_PublishedWebsites,所以玩的OutDir,OutputPath,PackageDestinationRoot等摆脱重复的.创建一个示例Web项目并阅读.csproj并.targets获取想法.
编辑:
如果你通过发布向导,你也会得到App_Data\PublishProfiles\Foo.pubxml通过PublishProfileName/ 阅读WebPublishProfileFile,导入它可以节省一些打字时间.这可能是相关的.
编辑:
导入适当的网络目标似乎是2012/2013年的新功能,2010年您需要使用aspnet_compiler.
aspnet_compiler -v Foo -p . -f obj
msdeploy -verb:sync -source:iisApp=%CD%\obj -dest:iisApp="Default Web Site/foo"
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3630 次 |
| 最近记录: |