使用TeamCity建立orchard项目部署

使用TeamCity建立orchard项目部署,teamcity,msdeploy,orchardcms,Teamcity,Msdeploy,Orchardcms,我们使用teamcity部署了几个项目。我正在尝试设置orchard项目的部署,目前遇到了一些问题 我有teamcity项目建设,并通知成功和失败的建设。添加部署步骤并运行该步骤时,出现以下错误: C:\Program Files(x86)\MSBuild\Microsoft\VisualStudio\v10.0\Web\Microsoft.Web.Publishing.targets(3460,5):错误MSB4044:“ConcatFullServiceUrlWithSiteName”任务未

我们使用teamcity部署了几个项目。我正在尝试设置orchard项目的部署,目前遇到了一些问题

我有teamcity项目建设,并通知成功和失败的建设。添加部署步骤并运行该步骤时,出现以下错误:

C:\Program Files(x86)\MSBuild\Microsoft\VisualStudio\v10.0\Web\Microsoft.Web.Publishing.targets(3460,5):错误MSB4044:“ConcatFullServiceUrlWithSiteName”任务未为所需参数“SiteAppName”指定值


我不知道是我没有正确配置构建步骤,还是orchard有问题。是否有人成功地从TeamCity部署了orchard项目,您能帮我解释一下这个问题吗?

我也遇到了同样的问题,通过转到Visual Studio项目设置中的“发布/包Web”选项卡,并在“要在目标服务器上使用的IIS网站/应用程序名称”下指定IIS网站名称,解决了这个问题


您还可以在TeamCity中将DeployiisAppath指定为MS build参数。

我没有幸使用Visual Studio 2010一键发布部署Orchard CMS。它确实在*.targets文件中遇到了一些问题

我认为应该使用
Orchard.proj
文件来发布它。它具备生成适当的web部署包所需的一切: 调用
msbuild/t:Build Orchard.proj
时,它会编译所有内容,将适当的文件放置在临时文件夹中的适当位置,然后生成
~\artifacts\MsDeploy\Orchard.Web.zip
。 此包已准备好部署。您可能需要编辑
manifest.xml
parameters.xml
,具体取决于您想要完成的操作。与乌节项目相同:您可能希望在那里启用一些禁用的模块等

我还将在编写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%
@echo关闭
设置site=sitename.com
设置用户=iis\u管理器\u登录
设置pass=密码
设置主机=wmsvc=https://hosting.provider.com:8172/msdeploy.axd?site=%site%,用户名='%user%',密码='%pass%',authtype='Basic'
set cmd=-allowUntrusted-verbose
呼应
::此命令将app_Offline.htm置于web应用程序根目录下,asp.net将
::立即自动关闭。我的主机提供商不允许我使用
::仍要回收EAPP提供程序。我也无法使用文件路径提供程序。
::这就是我使用contentPath的原因。
msdeploy-动词:sync-源:contentPath='%CD%\lib\msdeploy\app\u Offline.htm'-dest:contentPath=“%site%\app\u Offline.htm”,%host%%cmd%
::这是主部署命令。它将应用于中列出的每个提供者
::manifest.xml,应用在parameters.xml中写入的更改。
::它还将跳过媒体、Settings.txt和app_Offline.htm本身。
::如果没有skip指令,它将全部删除。
::部署将尝试删除Orchard.Web.zip中不存在的文件夹
::您可能需要添加以下内容
::
::去你的果园
msdeploy-动词:sync-source:package='artifacts\msdeploy\Orchard.Web.zip'-dest:auto,%host%-setParam:name='Application Path',value='site%'-skip:File='site%\\App\u Data\\Sites.*Settings.txt'-skip:File='site%\\App\u Offline.htm'-skip:Directory='site%\\Media'%cmd%
::删除app_Offline.htm,现在您的网站可以启动了。
msdeploy-动词:delete-dest:contentPath=“%site%\app\u Offline.htm”,%host%%cmd%

可能会有帮助。

我发现了问题,我们在web服务器上没有为部署用户正确设置一些权限。我能够为用户提供正确的设置,在项目文件设置中设置以下参数对我有效


默认网站/MySampleWebSite

我将其添加到csproj文件中(使用文本编辑器手动编辑)

。。。
麦斯特

这就解决了错误…

在使用竹子实现部署自动化时遇到了相同的错误。在我的例子中,我有两个项目—web应用程序项目和web应用程序所依赖的类库。当我使用运行部署时,类库依赖项将生成并失败,出现缺少SiteAppName错误(查看诊断日志,它似乎正在尝试部署我的类库)


为了解决这个问题,我首先构建了整个项目,然后在没有重建类库的情况下运行了msbuild部署,在msbuild部署命令行中添加了
/p:BuildProjectReferences=false

我们当前将一个应用程序从MVC移动到MVC 3,并遇到了这个问题,同样的错误,这是第二次。很高兴这个答案在这里!我敢打赌,如果您删除除“您还可以在TeamCity中将DeployiisAppath指定为MS build arguement”之外的所有内容,我们将有一个赢家。谢谢这对你来说不是一个很好的答案,我的意思是,这不会给其他有这个问题的人增加价值。我很想看到你解释到底是什么解决了这个问题。我真的不知道还有什么可以补充的。那是很久以前的事了,我只是需要修改team city在web服务器上部署的用户的权限。我想我也有同样的问题,我不知道自己做错了什么。希望看到需要更改哪些权限才能使其正常工作的答案。Richard评论说,这是在发布/包web中设置正确的站点名称以及允许部署用户访问IIS中该站点的文档根目录的组合。我没有访问服务器的权限进行验证,但您可以从完全访问开始,看看是否有效。然后开始剥离不必要的权限,直到恢复安全。
  <PropertyGroup> ...
   <DeployIisAppPath>mysite</DeployIisAppPath>
  </PropertyGroup>