我们使用teamcity来部署我们的几个项目。我正在尝试设置一个果园项目的部署,我目前遇到了一些问题。
我有团队城市项目建设并通知成功和失败的构建。当我添加部署步骤并运行它时,我收到以下错误:
C:\ Program Files(x86)\ MSBuild \ Microsoft \ VisualStudio \ v10.0 \ Web \ Microsoft.Web.Publishing.targets(3460,5):错误MSB4044:“ConcatFullServiceUrlWithSiteName”任务未赋值对于必需参数“SiteAppName”。
我不知道是不是我没有正确配置构建步骤,或者它是否与果园有问题。有没有人成功部署TeamCity的果园项目,你能帮助解决这个问题吗?
答案 0 :(得分:27)
我遇到了同样的问题并通过转到Visual Studio项目设置中的'发布/打包Web'选项卡并在'IIS网站/下指定IIS网站名称来修复它要在目标服务器上使用的应用程序名称。
您还可以在TeamCity中将DeployIisAppPath指定为MS构建争论。
答案 1 :(得分:3)
在项目文件设置中设置以下参数对我有用。
默认网站/ MySampleWebSite
答案 2 :(得分:2)
我将此添加到csproj文件(使用文本编辑器手动编辑)
<PropertyGroup> ...
<DeployIisAppPath>mysite</DeployIisAppPath>
</PropertyGroup>
并负责处理错误...
答案 3 :(得分:1)
我没有运气使用Visual Studio 2010 1-Click Publish部署Orchard CMS。它确实在* .targets文件中存在一些问题。
我认为它应该发布的方式是使用Orchard.proj
文件。它拥有生成适当的Web部署包所需的一切:
当您致电msbuild /t:Build Orchard.proj
时,它会编译所有内容,将正确的文件放在临时文件夹中的适当位置,然后生成~\artifacts\MsDeploy\Orchard.Web.zip
。
该软件包已准备好部署。您可能需要修改manifest.xml
和parameters.xml
,具体取决于您要完成的工作。对于Orchard.proj
也是如此:您可能希望在那里启用一些已禁用的模块等。
我也会在我发布时发布示例msdeploy脚本:
deploy.cmd:
@echo off
set site=sitename.com
set user=iis_manager_login
set pass=password
set host=wmsvc='https://hosting.provider.com:8172/msdeploy.axd?site=%site%',userName='%user%',password='%pass%',authtype='Basic'
set cmd=-allowUntrusted -verbose
echo on
::This command puts app_Offline.htm to web application root, asp.net will
::automatically shut down instantly. My hosting provider does not let me use
::recycleApp Provider anyway. I am also not able to use filePath Provider.
::That's why I use contentPath.
msdeploy -verb:sync -source:contentPath='%CD%\lib\msdeploy\app_Offline.htm' -dest:contentPath="%site%\app_Offline.htm",%host% %cmd%
::This is the main deploy command. It will apply every provider listed in
::manifest.xml, applying changed written in parameters.xml.
::It will also skip Media, Settings.txt and app_Offline.htm itself.
::Without skip directive, it would all get removed.
::Deploy will try to delete folders that do not exist in Orchard.Web.zip
::You might have a need to add something like
::<WriteLinesToFile File="$(StageFolder)\App_Data\Sites\Default\_placeholder.txt" Lines="some_text" Overwrite="true"/>
::to your Orchard.proj
msdeploy -verb:sync -source:package='artifacts\MsDeploy\Orchard.Web.zip' -dest:auto,%host% -setParam:name='Application Path',value='%site%' -skip:File='%site%\\App_Data\\Sites.*Settings.txt' -skip:File='%site%\\app_Offline.htm' -skip:Directory='%site%\\Media' %cmd%
::Remove app_Offline.htm, now your site can start up.
msdeploy -verb:delete -dest:contentPath="%site%\app_Offline.htm",%host% %cmd%
可能this blog post可能会有帮助。
答案 4 :(得分:1)
遇到同样的错误,使用bamboo自动部署我的部署。在我的例子中,我有两个项目,一个Web应用程序项目和一个Web应用程序所依赖的类库。当我使用msbuild deployment commandline运行部署时,类库依赖项将构建并失败,并且缺少SiteAppName错误(查看诊断日志,它似乎试图部署我的类库)。
为了解决这个问题,我首先构建整个项目,然后运行msbuild部署,而不是通过将/p:BuildProjectReferences=false
添加到msbuild部署命令行来重建类库。
答案 5 :(得分:-4)
我发现了问题,我们在Web服务器上为部署用户设置了一些权限。我能够为用户提供正确的