标签: msdeploy

如果它不存在,如何让msdeploy创建App_Data,但是不删除远程目录的任何内容?

我有一个应用程序设置与以下打包/发布Web设置:

  • 只运行此应用程序所需的文件
  • (未选中)排除生成的调试符号
  • (选中)从App_Data文件夹中排除文件
  • (选中)包括在"打包/发布SQL"选项卡中配置的所有数据库 - 注意我没有配置任何数据库
  • (未选中)包括IIS Express中配置的IIS设置

在项目中,我有一个App_Data文件夹设置,主要用于处理应用程序日志.

我希望看到(并期望)的行为如下:

  1. 在初始部署到全新服务器时,将复制应用程序并创建App_Data文件夹,并为应用程序分配写入权限.
  2. 在后续部署中,将忽略App_Data文件夹,因为它已存在并且已选中"从App_Data文件夹中排除文件".

但是,msdeploy似乎没有执行步骤#1(如果我手动创建文件夹,则步骤2没问题).除了这个没有答案的问题,我一直无法在网上找到任何文件,似乎证实了我看到的行为.

在这种情况下,如何让msdeploy创建App_Data并为初始部署分配权限?

.net asp.net msdeploy

28
推荐指数
3
解决办法
1万
查看次数

MSDeploy在MSDeployPublish上"挂起"

尝试使MSDeploy正常工作,并且它"挂起"在MSDeployPublish任务上.它说

"启动Web部署将应用程序/包发布到 https://myserver:8172/msdeloy.axd?site=mysite...从源:archiveDir(存档路径)到目标:auto()启动Web部署任务."

它就停止了.在我杀死这个过程之前,它会像这样坐30分钟,或者更多.

在它正在部署的服务器上,在这种情况下是myserver,MSDeploy的错误是:

ERROR_SERIALIZER_ALREADY_DISPOSED - 回调线程发生错误.这些错误通常是良性的并且是自动处理的.详细信息如下:System.Web.HttpException:远程主机关闭了连接.错误代码是0x800704CD.在System.Web.Hosting.IIS7WorkerRequest.RaiseCommunicationError(Int32 result,Boolean throwOnDisconnect)中的System.Web.Hosting.IIS7WorkerRequest.ExplicitFlush()处于System.Web.HttpResponse.Flush(Boolean finalFlush),位于System.IO.BufferedStream.FlushWrite( )在System.IO.BufferedStream.Flush()at System.Xml.XmlTextWriter.Flush()at Microsoft.Web.Deployment.TraceEventStreamSerializer.WriteKeepAliveEvent()

没有其他错误日志或消息,我可以找到.我可以将网址命名为msdeploy,例如,如果我https://myserver:8172/msdeloy.axd在浏览器中访问,我会收到自签名证书警告,然后会收到提示输入凭据,因此服务器上的MSDeploy似乎已启动并正在运行.

服务器(myserver)是带有IIS7的Windows 2008R2.

真正糟糕的是,如果我重新启动我正在部署的服务器(myserver)IT WORKS!

关于这里发生了什么的任何想法?

iis-7 msdeploy

26
推荐指数
1
解决办法
2462
查看次数

当参数有空格时,如何从powershell调用msdeploy?

我在参数中遇到空格问题,我尝试从powershell脚本发送到msdeploy.

还有许多其他相关文章,但没有一个解决问题.
使用Power Shell和MSDeploy的问题.
类似的SO问题不起作用:如何在带有空格和引号的参数的
PowerShell中运行exe PowerShell BUG:执行需要引号和变量的命令实际上是不可能的
另一个SO问题不起作用:在PowerShell 2.0中传递参数

当我使其变得更复杂时,成功然后失败的最简单的例子就是转储默认网站.

$ msdeploy ="C:\ Program Files\IIS\Microsoft Web Deploy\msdeploy.exe"
&$ msdeploy -verb:dump -source:appHostConfig =`'default web site`'-verbose
== SUCCESS

这个?

$ sitename ="默认网站"
&$ msdeploy -verb:dump -source:appHostConfig = $ sitename -verbose
== FAIL,出现以下错误
msdeploy.exe:错误:无法识别的参数'" - source:"appHostConfig = default'.所有参数必须以" - "开头.
在C:\ xxx\test.ps1:122 char:6
+&
+ CategoryInfo:NotSpecified :(错误:Unrecogn ...以" - "开头:String)[],RemoteException
+ FullyQualifiedErrorId:NativeCommandError
错误计数:1.

以下变化也失败了
#FAIL
$ sitename =`'默认网站''
$ sitename =`'"默认网站"`'
$ sitename ="`''默认网站`'"
$ sitename ="默认网站"
$ …

iis powershell msdeploy

25
推荐指数
4
解决办法
2万
查看次数

使用发布配置文件部署现有包

我正在尝试使用新的发布配置文件支持(在VS2012和VS2010中通过更新提供)来创建连续交付"部署管道",从而在第一个"阶段"中创建包/ zip并且相同的包是使用不同的配置部署到各种环境.

使用pubxml文件中定义的设置从命令行部署现有软件包涉及哪些任务/属性,而不会导致构建?换句话说,我想"发布"到一个,然后将相同的包"发布"到另一个配置文件而不重建它.

(我知道我可以直接使用MSDeploy,但如果可能的话,我更愿意在每个项目上使用更少的管道)

msbuild msdeploy web-publishing webdeploy msbuild-wpp

25
推荐指数
1
解决办法
2万
查看次数

Web部署 - 使用相对路径进行本地文件系统部署

我想使用Web Deploy来运行自定义部署设置.

因为我想在许多不同的环境(团队成员本地机器,4个不同的构建服务器)上运行时能够正常工作,我想部署到相对的本地路径.

我想要做的是:

  • 部署到本地相对路径
  • 让后续构建步骤做出神奇的事情......

但是当我输入本地文件路径以部署为:"..\Deploy_Production"

Web部署抱怨:

2>Connecting to ..\Deploy_Live...
2>Unable to create the Web site '../Deploy_Live'.  The URL http://:0 is invalid.
Run Code Online (Sandbox Code Playgroud)

它就好像Web部署认为相对文件路径是网站URL.使用".. \"代替我的原因.

如何将WebDeploy部署到本地相对路径?

编辑1:

我试图在构建之前使用ConvertToAbsolutePath任务,但无济于事:

  <PropertyGroup>
    <WebPublishMethod>FileSystem</WebPublishMethod>
    <SiteUrlToLaunchAfterPublish>http://mywebsite.com</SiteUrlToLaunchAfterPublish>
    <publishUrl>..\Deploy_Production</publishUrl>
    <DeleteExistingFiles>False</DeleteExistingFiles>
  </PropertyGroup>

  <Target Name="BeforeBuild">
    <ConvertToAbsolutePath Paths="$(publishUrl)">
      <Output TaskParameter="AbsolutePaths" PropertyName="publishUrl" />
    </ConvertToAbsolutePath>
  </Target>
Run Code Online (Sandbox Code Playgroud)

编辑2: 上述工作,但只有在针对解决方案文件而不是项目文件运行命令行构建时

msbuild msdeploy webdeploy

25
推荐指数
1
解决办法
1万
查看次数

MSDeploy安装Windows服务?

我们有一个使用NServiceBus发布活动的网站.使用msdeploy部署站点.我们还有NServiceBus.exe作为Windows服务运行来订阅这些事件,我们也想部署它.

有没有办法打包服务以及网站,以便它也可以安装?是否可以单独打包,以便我们可以将其部署到另一台服务器?

有关如何查找有关如何执行此操作的信息的任何提示都很棒,因为我们现在可以自动部署网站.

windows-services automated-deploy msdeploy

24
推荐指数
1
解决办法
9866
查看次数

如何使用MSBuild避免使用MSDeploy到文件系统的这种深层文件夹结构?

我正在解决这个MSBuild问题.

我们正在使用TeamCity构建一个包含两个MVC网站的解决方案.作为构建的一部分,我们将部署到构建服务器上的文件夹中.IIS指向此文件夹,以便为管理层提供可见的集成构建.

这是MSBuild文件中使用MSDeploy发布包的代码 - 但不是zip文件.

<Target Name="Deploy">
  <MSBuild 
    Projects="$(SolutionFile)"
    Properties="Platform=$(Platform);Configuration=$(Configuration);
    DeployOnBuild=true;
    DeployTarget=Package;
    PackageLocation=$(PackageLocation);
    PackageAsSingleFile=False;
    AutoParameterizationWebConfigConnectionStrings=False" />
</Target>
Run Code Online (Sandbox Code Playgroud)

这里的问题是我们得到了一个非常深的文件夹结构.这是一个例子......

C:\ DEPLOY\Archive\Content\C_C\Users\Edmond\Documents\Visual Studio 2008\CreatioGreen\Creatio\Code\core\trunk\Website\Website\obj\Release\Package\PackageTmp [已发布文件]

我真的想部署到可预测的文件夹,如...

C:\ build\website [已发布文件] C:\ build\mobilewebsite [已发布文件]

这就是背景.以下是具体问题.

  1. 我们在尝试使用MSDeploy发布到本地文件系统时犯了错误吗?我们基本上需要相当于VS2010"发布"功能,配置转换.我们不是要尝试部署到远程IIS实例或任何东西.

  2. 有没有办法这样做,但指定发布文件夹?

  3. 我一直在尝试使用MSBuild Copy任务将文件复制到更合理的文件夹中 - 但我无法弄清楚如何使用通配符来指定我们需要采取的文件夹 - 它需要像...

C:\ FolderPackageEndsUpIn [ANYFOLDERS]\Website [ANYFOLDERS]\PackageTmp**.

救命!

msbuild teamcity msdeploy webdeploy

24
推荐指数
2
解决办法
7305
查看次数

为什么这个web.config转换说它找不到applicationSettings元素?

在TeamCity中转换web.config文件时出现以下错误.它发生在元素上<applicationSettings xdt:Transform="Replace">.

源文档中的任何元素都不匹配'/ configuration/applicationSettings'

源文件具有此设置.不知道怎么解决这个问题?

msbuild web-config publishing msdeploy

23
推荐指数
2
解决办法
1万
查看次数

在Visual Studio 2012中使用MSBuild PublishProfile时,MSDeploy跳过规则

我正在尝试使用WebDeploy使用自定义MSDeploy跳过规则和Visual Studio 2012中保存的发布配置文件来发布网站.

我从命令行使用发布配置文件,但跳过删除文件夹的跳过规则不起作用.

我的ErrorLog网络应用程序中有一个子文件夹,web.config里面有一个文件来设置正确的文件夹权限.没有任何跳过规则,ErrorLog文件夹和web.config文件将正常发布,但服务器上文件夹中的所有现有错误日志文件将在发布时删除.


错误 <SkipAction>Delete</SkipAction>

当我向我的wpp.targets文件添加自定义跳过规则时,跳过规则不再接受该<SkipAction>元素的值.如果我设置<SkipAction>Delete</SkipAction>,我收到以下错误:

C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v11.0\Web\Microsoft.Web.Publishing.targets(4377,5): error : Web deployment task failed. (Unrecognized skip directive 'skipaction'. Must be one of the following: "objectName," "keyAttribute," "absolutePath," "xPath," "attributes.<name>.") [C:\inetpub\wwwroot\My.Website\My.Website\My.Website.csproj]
Run Code Online (Sandbox Code Playgroud)

如果我只是省略该<SkipAction>元素,ErrorLog则在正常发布时删除该文件夹.

如果我<SkipAction></SkipAction>再次设置,ErrorLog则在发布时删除该文件夹.

如果我设置<KeyAttribute>Delete</KeyAttribute>,然后ErrorLogweb.config文件通常刊载.

我的理解是,为了使用自定义跳过规则,您需要从命令行调用MSBuild而不是从VS 2012中发布.但是,我仍然想使用我保存的发布配置文件,我知道现在可以使用VS 2012.


我的MSBuild命令行:

C:\Windows\Microsoft.NET\Framework\v4.0.30319\MSBuild.exe My.Website.sln /p:Configuration=Release;DeployOnBuild=true;PublishProfile="Test Server - Web Deploy"
Run Code Online (Sandbox Code Playgroud)

My.Website.wpp.targets:

<?xml version="1.0" encoding="utf-8" ?> …
Run Code Online (Sandbox Code Playgroud)

msbuild msdeploy visual-studio webdeploy visual-studio-2012

23
推荐指数
2
解决办法
1万
查看次数

来自TeamCity的MSBuild的/ P MSDeploy参数的完整列表

我目前使用TeamCity中的MSBuild运行器在我的本地服务器上进行持续集成,这非常有效.但是,我无法以TeamCity期望的格式查找MSDeploy支持的命令行开关的完整列表.

在我的'参数'部分中,我使用以下开关:

  /P:Configuration=OnCommit
  /P:DeployOnBuild=True
  /P:DeployTarget=MSDeployPublish
  /P:MsDeployServiceUrl=https://CIServer:8172/MsDeploy.axd
  /P:AllowUntrustedCertificate=True
  /P:MSDeployPublishMethod=WMSvc
  /P:CreatePackageOnPublish=True
  /P:UserName=Kaine
  /P:Password=**********
  /P:DeployIISAppPath="OnCommit/MySite"
  /P:SkipExtraFilesOnServer=True
  /P:DeployAsIisApp=True
Run Code Online (Sandbox Code Playgroud)

所有这些似乎工作正常,MSDeploy按预期工作.

当我想添加其他参数时出现问题.

我查找了MSBuild参数和MSDeploy文档,我似乎只找到这样的命令行参数:

msbuild SlnFolders.sln /t:NotInSolutionfolder:Rebuild;NewFolder\InSolutionFolder:Clean
Run Code Online (Sandbox Code Playgroud)

http://msdn.microsoft.com/en-us/library/ms164311.aspx

似乎这些命令行参数的引用与/ P:格式不对应 - 例如,CreatePackageOnPublish和DeployIISAppPath不是可识别的命令行参数,但它们在TeamCity构建过程中工作正常.

我在哪里可以找到格式的MSDeploy参数的完整文档列表

/ P:PARAM =值

附加信息:

这里有一个参数列表:

http://msdn.microsoft.com/en-us/library/microsoft.teamfoundation.build.workflow.activities.msbuild_properties.aspx

然而,这不是一个完整的列表 - 例如,这个名单不包括DeployAsIisApp或SkipExtraFilesOnServer,它们是从团队我市建设工作,这两个参数.

此相关问题(可能重复):MSDeploy的有效参数通过MSBuild包含一些参数 - 但仍然不是一个明确的列表.

msbuild teamcity continuous-integration msdeploy

23
推荐指数
2
解决办法
4万
查看次数