标签: msdeploy

如何在MSDeploy.exe命令行上设置目标网站

我有一个Web Deploy 3.5软件包,我想部署到远程服务器.如何在MSDeploy.exe命令行上指定站点的名称?

这是我到目前为止所拥有的:

C:\Program Files (x86)\IIS\Microsoft Web Deploy V3\msdeploy.exe
    -source:package='package.zip' 
    -dest:auto,computerName="ServerName",includeAcls="False" 
    -verb:sync 
    -disableLink:AppPoolExtension 
    -disableLink:ContentExtension 
    -disableLink:CertificateExtension 
    -setParamFile:"package.SetParameters.xml"
Run Code Online (Sandbox Code Playgroud)

但是该文件的名称是在package.SetParamters.xml文件中指定的,我更喜欢在命令行中设置它.我想部署此软件包的一些地方是位于同一服务器上的不同站点,例如我们的Stage和UAT站点.

我已经看过使用这里描述的iisApp和appHostConfig提供程序:http://technet.microsoft.com/en-us/library/dd569040%28v=ws.10%29.aspx

但是我在将这些与包文件结合使用时遇到了麻烦.

msdeploy webdeploy

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

这个PowerShell命令行引用/转义是什么?

我显然不知道自己在做什么.

我终于得到了这个PowerShell命令.但我无法弄清楚它为什么会起作用.

我担心的是最后的""角色:

    &"C:\Program Files\IIS\Microsoft Web Deploy\msdeploy.exe" `
    -verb:sync `
    -source:contentPath="$build_directory\deploy" `
    -dest:contentPath="$server_temp_directory,computerName=$server,username=$server_username,password=$server_password" `
    -verbose `
    -postSync=runCommand="powershell -NoLogo -NoProfile -Command $server_temp_directory\remotetasks.ps1 Deploy""
Run Code Online (Sandbox Code Playgroud)

为什么我需要双重双引号?

我的IDE(PowerGUI)说线路没有正确结束,但这是我可以按需要运行命令的唯一方法.

是什么,我 - 和IDE - 不知道在PowerShell中进行qouting?


echoargs的一点输出:

如果我跑:

echoargs -postSync=runCommand="powershell -NoLogo -NoProfile -Command $server_temp_directory\remotetasks.ps1 Deploy""
Run Code Online (Sandbox Code Playgroud)

我明白了:

Arg 0 is <-postSync=runCommand=powershell -NoLogo -NoProfile -Command \remotetasks.ps1 Deploy>
Run Code Online (Sandbox Code Playgroud)

如果我在没有双引号的情况下运行,我得到:

Arg 0 is <-postSync=runCommand=powershell>
Arg 1 is <-NoLogo>
Arg 2 is <-NoProfile>
Arg 3 is <-Command>
Arg 4 is <\remotetasks.ps1>
Arg 5 is <Deploy>
Run Code Online (Sandbox Code Playgroud)

另一件需要注意的是,上面的命令只有在最后一个参数中使用=而不是:时才有效.

这不起作用:

-postSync:runCommand="powershell -NoLogo -NoProfile -Command $server_temp_directory\remotetasks.ps1 …
Run Code Online (Sandbox Code Playgroud)

powershell psake msdeploy

12
推荐指数
1
解决办法
5195
查看次数

在Visual Studio 2010中使用Microsoft AJAX Minifier一键式发布

微软的AJAX Minifier提供了一个构建任务,可以在TFS或本地构建定义使用.

我在本地项目文件(构建到单独的文件)和TFS构建定义(覆盖现有的JS文件)中都使用了这个.

我想转而使用Visual Studio 2010的一键发布功能而不是TFS构建定义,但是在项目文件中将缩小任务添加为AfterBuild目标似乎不会影响单击发布功能.

使用此线程这些 文章中的信息,我尝试在我的WAP根目录中创建一个名为"[ProjectName] .wpp.targets的文件,并使用以下XML:

<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Import Project="$(MSBuildExtensionsPath)\Microsoft\MicrosoftAjax\ajaxmin.tasks" />
<Target Name="Minify" BeforeTargets="MSDeployPublish">
    <ItemGroup>
      <JS Include="**\*.js" Exclude="**\*.min.js;**\*vsddoc.js;**\*debug.js" />
    </ItemGroup>
    <ItemGroup>
      <CSS Include="**\*.css" Exclude="**\*.min.css" />
    </ItemGroup>
    <AjaxMin JsSourceFiles="@(JS)" JsSourceExtensionPattern="\.js$" JsTargetExtension=".min.js" CssSourceFiles="@(CSS)" CssSourceExtensionPattern="\.css$" CssTargetExtension=".min.css" />
  </Target>
</Project>
Run Code Online (Sandbox Code Playgroud)

这似乎没有任何效果,不幸的是,Visual Studio对这些工具的反馈或调试信息没有太多帮助.

有没有人使用Visual Studio 2010一键发布功能来缩小JavaScript/CSS?

visual-studio-2010 msdeploy microsoft-ajax-minifier

12
推荐指数
1
解决办法
9770
查看次数

打破MsBuild包并部署到单独的MsBuild和MsDeploy命令中

我在将MsBuild package + deploy命令分成两个单独的命令时遇到了一些问题.(我需要这样做才能将其他参数传递给MsDeploy).

工作正常的命令如下所示:

msbuild "src\Solution.sln" 
  /P:Configuration=Deploy-Staging 
  /P:DeployOnBuild=True
  /P:DeployTarget=MSDeployPublish
  /P:MsDeployServiceUrl=https://192.168.0.1:8172/MsDeploy.axd
  /P:DeployIISAppPath=staging.website.com 
  /P:AllowUntrustedCertificate=True 
  /P:MSDeployPublishMethod=WmSvc 
  /P:CreatePackageOnPublish=True 
  /P:UserName=staging-deploy 
  /P:Password=xyz
Run Code Online (Sandbox Code Playgroud)

分离的打包命令如下所示:

msbuild "src\Solution.sln" 
  /P:Configuration=Deploy-Staging 
  /P:DeployOnBuild=True
  /P:DeployTarget=Package 
  /P:_PackageTempDir=C:\temp\web
Run Code Online (Sandbox Code Playgroud)

哪个工作正常.但接下来是MsDeploy部分:

msdeploy 
 -verb:sync 
 -allowUntrusted 
 -usechecksum
 -source:manifest=
  'src\WebProject\obj\Deploy-Staging\Package\WebProject.SourceManifest.xml'  
 -dest:auto,ComputerName=
  'https://192.168.0.1:8172/MsDeploy.axd?site=staging.website.com',
   username='staging-deploy',password='xyz',authType='basic',includeAcls='false'
 -enableRule:DoNotDeleteRule
Run Code Online (Sandbox Code Playgroud)

失败,WmSvc.log中出现以下错误

wmsvc.exe Error: 0 : Attempted to perform an unauthorized operation.
setAcl/C:\temp\web (Read)
ProcessId=15784
ThreadId=31
DateTime=2011-03-30T14:57:02.4867689Z
Timestamp=3802908721815
wmsvc.exe Error: 0 : Not authorized.
Details: No rule was found that could authorize user 'staging-deploy', 
         provider 'setAcl', operation 'Read', path 'C:\temp\web'.
Run Code Online (Sandbox Code Playgroud)

(还有几个读/写操作)

它试图访问的路径显然出现了问题(因为它可以正常使用其他方法) - 我不确定它是否正在尝试正确使用iisApp定位,而且目前我认为没有正确的网络.config也将被部署.

deployment msbuild teamcity msdeploy webdeploy

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

我可以在一键式网络发布期间保留文件夹权限吗?

免责声明:我知道如果我选中"在目的地保留额外文件"复选框,我可以保留文件夹权限,但我不想这样做.

也就是说,有没有办法让Visual Studio 2010中的一键式Web发布保留远程服务器上文件夹的权限?

具体来说,我希望应用程序池帐户具有对App_Data文件夹的修改权限,但在发布过程中始终会重置权限.

asp.net iis visual-studio-2010 msdeploy one-click-web-publishing

12
推荐指数
1
解决办法
1512
查看次数

在vs 2012中一键发布:如何删除_ConnectionStringsToInsert?

我通常把我的连接字符串放到一个单独的文件中,在web.config中添加这样的东西:

<connectionStrings configSource="WebConnection.config" />
Run Code Online (Sandbox Code Playgroud)

我刚刚安装了VS 2012,它会自动获取我现有的发布设置.但是,当我进行网络发布时,它现在自己添加了两个连接字符串,因此部署目标上的web.config现在看起来像这样:

  <connectionStrings configSource="WebConnection.config">
    <add name="EF.Model.DbContext" connectionString="EF.Model.DbContext_ConnectionString" providerName="System.Data.SqlClient" />
    <add name="Migrations.Db.MigrationDb" connectionString="Migrations.Db.MigrationDb_ConnectionString" providerName="System.Data.SqlClient" />
  </connectionStrings>
Run Code Online (Sandbox Code Playgroud)

当然,这会产生错误(使用时节点内容必须为空configSource).我注意到,在新生成的.pubxml文件(现在存储发布设置)中有以下几行:

  <ItemGroup>
    <_ConnectionStringsToInsert Include="EF.Model.DbContext" />
    <_ConnectionStringsToInsert Include="Migrations.Db.MigrationDb" />
  </ItemGroup>
Run Code Online (Sandbox Code Playgroud)

我该如何删除它们?:)如果我从文件中删除它们,Web-publish对话框会在我编辑发布设置时随时添加它们.

msdeploy one-click-web-publishing webdeploy visual-studio-2012

12
推荐指数
1
解决办法
3902
查看次数

使用teamcity在多台服务器上自动部署哪一个更好章鱼或msdeploy

我已经调查了两个.想了解哪一个更适合在多个服务器上进行自动化Web部署.

.net msbuild teamcity msdeploy octopus-deploy

12
推荐指数
1
解决办法
4599
查看次数

如何找出当前安装的webdeploy/msdeploy版本?

我正在寻找类似Powershell脚本的东西来检查是否安装了msdeploy,如果是,那么是什么版本

我考虑过检查"c:\ Program Files\IIS"并检查那里的MSDeploy安装,但是这总是保证是安装位置吗?

我需要这个在任何给定的服务器机器上工作

powershell msdeploy webdeploy

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

Web Deploy(又名MsDeploy)返回ERROR_CONNECTION_TERMINATED

我试图从命令行msdeploy执行,例如以下命令:

"C:\Program Files\IIS\Microsoft Web Deploy V3\msdeploy.exe" -verb:sync 
        -source:package="Templates\TemplateAppPool.zip" 
        -dest:appPoolConfig="MyAppPool",computerName="...",userName="...",password="..." 
        -replace:objectName=processModel,targetAttributeName=idleTimeout,replace=00:45:00 
        -replace:objectName=add,targetAttributeName=managedPipelineMode,replace=Integrated 
        -allowUntrusted
Run Code Online (Sandbox Code Playgroud)

并得到以下错误

Info: Using ID '0b2ec654-ae21-4848-897d-f644d95b4bfa' for connections 
to the remote server.
Error Code: ERROR_CONNECTION_TERMINATED
More Information: Web Deploy experienced a connection problem with 
the server and had to terminate the connection.  Contact your server 
administrator if the problem persists.  Learn more at: 
http://go.microsoft.com/fwlink/?LinkId=221672#ERROR_CONNECTION_TERMINATED
Run Code Online (Sandbox Code Playgroud)

我添加了-allowUntrusted以防止目标计算机上的证书可能出错.因为当我尝试从VS 2013中执行此操作时,它会向我显示有关目标计算机上的证书的错误/警告.无论如何,我接受了错误的证书,它进一步说连接是可以的,但是

当我尝试从VS 2013发布时,我得到了关注

Start Web Deploy Publish the Application/package to 
https://remotehost:8172/msdeploy.axd?site=Default%20Web%20Site ...
C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v11.0\Web\Microsoft.Web.Publishing.targets(4193,5): 
Error : Web deployment task failed. (Unknown ProviderOption:DefiningProjectFullPath. 
Known …
Run Code Online (Sandbox Code Playgroud)

msdeploy visual-studio webdeploy

12
推荐指数
2
解决办法
3059
查看次数

MSDeploy setParameter无法正常工作

我们正在尝试在构建部署系统中集成"构建一次,随处部署"模型.

MSDeploy为此创造了奇迹,通过CRC校验和比较显着缩短了构建时间,并且(在大多数情况下)使用参数化来根据我们部署的环境更改应用程序web.configs时,它也能正常工作.

我将这些参数中的大多数固定下来,但是无论我在parameters.xml文件中调用它们有多少种不同的方式,一些元素和属性似乎永远不会改变.我已经概述了三个这样的例子,这里是我试图改变的web.config文件:

<?xml version="1.0" encoding="utf-8"?>
<configuration>
    <connectionStrings>
        <add name="DbConnectionString" connectionString="Data Source=null;Initial Catalog=null;Trusted_Connection=no;User ID=user1;Password=pass*9;" providerName="System.Data.SqlClient" />
    </connectionStrings>

    <system.web>
        <customErrors mode="On" defaultRedirect="/Library/Error/PageNotFound.aspx">
        </customErrors>
    </system.web>

    <applicationSettings>
        <settings>
            <setting name="service_Address" serializeAs="String">
                    <value></value>
            </setting>
        <settings>
    </applicationSettings>
</configuration>
Run Code Online (Sandbox Code Playgroud)

这是parameters.xml文件:

<parameter name="DbConnectionString" defaultValue="">
    <parameterEntry kind="XmlFile" scope="\\web.config$" match="/configuration/connectionStrings/add[@name='DbConnectionString']/@connectionString" />
</parameter>

<parameter name="customErrorsMode" defaultValue="">
    <parameterEntry kind="XmlFile" scope="\\web.config$" match="configuration/system.web/customErrors/@mode" />
</parameter>

<parameter name="service_Address" defaultValue="">
    <parameterEntry kind="XmlFile" scope="\\web.config$" match="/configuration/applicationSettings/aim.Web.Properties.Settings/setting[@name='service_Address']/value" />
</parameter>
Run Code Online (Sandbox Code Playgroud)

这是相应的setParameters.xml文件:

<setParameter name="DbConnectionString" value="Data Source=dbserver;Initial Catalog=DB1;Trusted_Connection=no;User ID=user1;Password=pass*9;"/> 

<setParameter name="customErrorsMode" value="Off"/>

<setParameter name="service_Address" value="https://myservice.asmx"/>
Run Code Online (Sandbox Code Playgroud)

我测试了每个XPath表达式,结果与任何其他工作参数完全相同,但上面似乎永远不会改变.

有没有人看到我在这里丢失的任何明显的东西?

xpath web-config msdeploy webdeploy web.config-transform

12
推荐指数
1
解决办法
4043
查看次数