标签: msdeploy

将网站部署包构建为postbuild事件

我正在使用visual studio 2010.我有一个网站项目,我想在每次构建项目时构建一个网站部署包.基本上我正在寻找一个post build MSBuild命令的例子,该命令基本上与网站右键菜单中的"Build Deployment Package"选项做同样的事情.

msbuild visual-studio-2010 msdeploy

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

MSDeploy:如何删除远程服务器上的单个文件

如何删除远程服务器上的单个文件。我想删除offline_app.htm,只保留其余内容。

提示赞赏。

msdeploy

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

Visual Studio 2013 Web部署失败

我刚刚安装了VS 2013,从VS 2010升级.创建一个曾经在2010年工作的Web部署包zip文件.使用VS 2013的Publish Web功能发布到Web Deploy Package,我收到以下错误:

Web部署任务失败.(无法创建类型'manifest'和路径'D:\ dev\DMWeb\DMWebClient\obj\Test\Package\DMWebClient.SourceManifest.xml'的对象.有关详细信息,请访问:http: //go.microsoft.com/fwlink /?LinkId = 221672#ERROR_EXCEPTION_WHILE_CREATING_OBJECT.)

"Web发布活动"选项卡中的详细信息显示以下内容:

使用D:\ dev\DMWeb\DMWebClient\Web.Test.config将Web.config转换为obj\Test\TransformWebConfig\transformed\Web.config.Auto ConnectionString将Views\Web.config转换为obj\Test\CSAutoParameterize\transformed\Views\Web.config.Auto ConnectionString将obj\Test\TransformWebConfig\transformed\Web.config转换为obj\Test\CSAutoParameterize\transformed\Web.config.

将所有文件复制到下面的临时位置以进行包/发布:obj\Test\Package\PackageTmp.

打包到D:\ dev\DMWeb\DMWebClient\obj\Test\Package\DMWebClient.zip.

C:\ Program Files(x86)\ MSBuild\Microsoft\VisualStudio\v12.0\Web\Microsoft.Web.Publishing.targets(3883,5):

错误ERROR_EXCEPTION_WHILE_CREATING_OBJECT:Web部署任务失败.(无法创建类型'manifest'和路径'D:\ dev\DMWeb\DMWebClient\obj\Test\Package\DMWebClient.SourceManifest.xml'的对象.

有关详情,请访问:http: //go.microsoft.com/fwlink/?LinkId = 221672 #ERROR_EXCEPTION_WHILE_CREATING_OBJECT.)

包裹失败.

在VS 2010中,我不得不以管理员的身份运行它来部署工作,我也在这里这样做.我还尝试将项目文件夹的完全控制权限授予NETWORK SERVICE,LOCAL SERVICE,Authenticated Users和我.

Package文件夹中,有PackageTmp文件夹(看起来不错),以及DMWebClient.SourceManifest.xml文件,就是这样.在VS 2010中,那里有更多文件.

DMWebClient.SourceManifest.xml包含:

<?xml version="1.0" encoding="utf-8"?>
<sitemanifest>
  <IisApp path="D:\dev\DMWeb\DMWebClient\obj\Test\Package\PackageTmp" />
  <setAcl path="D:\dev\DMWeb\DMWebClient\obj\Test\Package\PackageTmp" setAclResourceType="Directory" />
  <setAcl path="D:\dev\DMWeb\DMWebClient\obj\Test\Package\PackageTmp" setAclUser="anonymousAuthenticationUser" setAclResourceType="Directory" />
  <setAcl path="D:\dev\DMWeb\DMWebClient\obj\Test\Package\PackageTmp\App_Data" setAclResourceType="Directory" setAclAccess="Write" />
  <setAcl path="D:\dev\DMWeb\DMWebClient\obj\Test\Package\PackageTmp/DMWeb.config" setAclResourceType="File" setAclAccess="Read,Write" /> …
Run Code Online (Sandbox Code Playgroud)

msdeploy webdeploy visual-studio-2013

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

使用 VS2012 中的构建发布项目因“跳过不可发布的项目”而失败

我正在将当前解决方案从 VS2010 迁移到 VS2012,因为不支持 Web 部署项目,我正在尝试在项目上使用“发布”功能。

我的要求是在运行构建时在项目上运行“发布”。这是一个“.csproj”,发布方法“文件系统”也在发布的设置选项卡上,我有“发布期间预编译”和“将所有输出合并到单个程序集”。

我可以通过右键单击项目并选择“发布”来手动运行发布,它提供所需的单个程序集并将其复制到正确的位置,我只需要它在构建时运行

我试过以下无济于事

将单行添加到 .csproj 文件

    <DeployOnBuild>true</DeployOnBuild>
Run Code Online (Sandbox Code Playgroud)

尝试将以下行添加到 .csproj

<FilesToIncludeForPublish>OnlyFilesToRunTheApp</FilesToIncludeForPublish>
<DeployOnBuild>true</DeployOnBuild>
<DeployTarget>Package</DeployTarget>
<PackageAsSingleFile>true</PackageAsSingleFile>
Run Code Online (Sandbox Code Playgroud)

命令行

MSBuild C:\MyProj.csproj /p:DeployOnBuild=true /p:PublishProfile=WebDeploy /p:CreatePackageOnPublish=True /p:VisualStudioVersion=11.0
Run Code Online (Sandbox Code Playgroud)

以上命令导致

Build started 07/04/2014 14:01:05.
Project "C:\MyProj.csproj" on node 1 (default targets).
Build:
Running Publish
_DeploymentUnpublishable:
Skipping unpublishable project.
Done Building Project "C:\MyProj.csproj" (default targets).
Build succeeded.
Run Code Online (Sandbox Code Playgroud)

c# asp.net msbuild msdeploy visual-studio-2012

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

Azure Web App:发布前删除所有文件

使用以下Powershell脚本发布到我们的Azure Web App时,我们经常遇到问题,即先前发布的文件会导致运行时错误.

param($websiteName, $packOutput)

$website = Get-AzureWebsite -Name $websiteName

# get the scm url to use with MSDeploy.  By default this will be the second in the array
$msdeployurl = $website.EnabledHostNames[1]

$publishProperties = @{'WebPublishMethod'='MSDeploy';
                        'MSDeployServiceUrl'=$msdeployurl;
                        'DeployIisAppPath'=$website.Name;
                        'Username'=$website.PublishingUsername;
                        'Password'=$website.PublishingPassword}

Write-Output "Stopping web app..."
Stop-AzureWebsite -Name $websiteName

Write-Output "Publishing web app..."
$publishScript = "${env:ProgramFiles(x86)}\Microsoft Visual Studio 14.0\Common7\IDE\Extensions\Microsoft\Web Tools\Publish\Scripts\default-publish.ps1"

Write-Output "Starting web app..."
Start-AzureWebsite -Name $websiteName

. $publishScript -publishProperties $publishProperties  -packOutput $packOutput
Run Code Online (Sandbox Code Playgroud)

如何在发布之前删除所有现有文件?

请注意,我们不能使用插槽,因为这需要标准实例,这对我们的CI环境而言过于昂贵.

powershell azure msdeploy azure-web-sites azure-powershell

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

csproj/msbuild 是否可以将文件包含为可选内容?

我的应用程序中有一个可选的配置文件,用于特定于实例的配置。该应用程序无需它即可运行,并且仅当您想配置一些附加功能时才需要它。因此它不应该包含在源代码管理中,因为每个开发人员和客户端部署都不需要它,而那些需要它的人会有不同的值。

我在弄清楚如何配置它以进行持续部署时遇到问题。我可以毫无问题地在构建服务器上生成文件。但是,由于 MsDeploy 读取 csproj 以确定要部署哪些文件,因此我的 csproj 必须跟踪此文件才能实际移动到部署服务器。但是如果我通过我的 csproj 跟踪它,那么它就不再是可选的,没有它我就无法构建应用程序。我正在使用 Mercurial,它没有提交一个版本忽略后续功能(git 的--assume-unchanged),所以在这方面的选项似乎非常有限。我坚信应该可以克隆一个 repo 并立即运行该项目,所以我真的不喜欢提交无法构建的东西的想法。

csproj 文件中是否有一种方法可以指示文件应作为内容(如果存在)包含在内,否则应忽略?

msbuild continuous-integration csproj msdeploy

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

Visual Studio 2013 构建和发布

我在 VS 2013 中混合了 web 和 windows 项目。我有一个解决方案来构建所有项目。出于测试目的,我想将一些 Web 项目自动部署到本地文件夹中。我可以手动执行此操作,右键单击菜单并选择发布...

我创建了看起来像的发布配置文件

<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
  <PropertyGroup>
    <WebPublishMethod>FileSystem</WebPublishMethod>
    <LastUsedBuildConfiguration>Release</LastUsedBuildConfiguration>
    <LastUsedPlatform>Any CPU</LastUsedPlatform>
    <SiteUrlToLaunchAfterPublish />
    <LaunchSiteAfterPublish>True</LaunchSiteAfterPublish>
    <ExcludeApp_Data>False</ExcludeApp_Data>
    <publishUrl>$(MSBuildThisFileDirectory)..\..\bin\PublishFolder\</publishUrl>
    <DeleteExistingFiles>True</DeleteExistingFiles>
  </PropertyGroup>
</Project>
Run Code Online (Sandbox Code Playgroud)

我可以使用 msbuild 从命令行发布

msbuild C:\work\Source\AppManager\SereverManager.csproj  /p:DeployOnBuild=true /p:PublishProfile=Local 
Run Code Online (Sandbox Code Playgroud)

这也给了我设计的结果。

我想做的是结合项目构建和发布。这意味着我希望每次构建项目时自动部署。

我尝试设置批处理文件并从构建后事件调用 msbuild,但这会导致 VS 冻结,甚至不确定这是否是正确的方法。每次构建项目时是否可以修改我的 csproj 文件以发布?

msbuild publish build msdeploy visual-studio-2013

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

MSDEPLOY无法联系远程临时代理

在过去的几周里,我一直在成功运行MSDEPLOY命令,直到昨天(至少在我第一次意识到部署脚本失败的时候).我昨天在构建服务器上安装了Visual Studio 2010 Service Pack 1来修复与web.config转换相关的问题,我从该服务器运行MSDEPLOY脚本以安装在远程服务器上(运行Windows Server 2008 R2 IIS 7.5) .

我加强了MSDEPLOY命令以进行详细操作并得到以下跟踪:

-------------------------------------------------------
 Start executing msdeploy.exe
-------------------------------------------------------
 "C:\Program Files\IIS\Microsoft Web Deploy\msdeploy.exe" -source:package='E:\Staging\ChildSupportWebsite.Beta1\Release\_PublishedWebsites\Csws.UI_Package\Csws.UI.zip' -dest:auto,computerName='HFSWP121-03720',userName='DOMAIN\USERNAME',password='PASSWORD',includeAcls='False',tempAgent='true' -verb:sync -disableLink:AppPoolExtension -disableLink:ContentExtension -disableLink:CertificateExtension -setParamFile:"E:\Staging\ChildSupportWebsite.Beta1\sit.Csws.UI.SetParameters.xml" -skip:Directory="Csws\\Participant" -skip:objectName=filePath,absolutePath="bin\\.*.xml|pdb"  -whatif  -verbose
Verbose: Using ID '557f88cc-6194-41fb-84b0-6895fe8bc47d' for connections to the remote server.
Verbose: Creating temporary directory '\\HFSWP121-03720\C$\Windows\TEMP\MSDEPLOY\557f88cc-6194-41fb-84b0-6895fe8bc47d' on remote target.
Verbose: Copying temporary agent file C:\Program Files\IIS\Microsoft Web Deploy\Microsoft.Web.Delegation.dll to \\HFSWP121-03720\C$\Windows\TEMP\MSDEPLOY\557f88cc-6194-41fb-84b0-6895fe8bc47d\Microsoft.Web.Delegation.dll.
Verbose: Copying temporary agent file C:\Program Files\IIS\Microsoft Web Deploy\Microsoft.Web.Deployment.dll to \\HFSWP121-03720\C$\Windows\TEMP\MSDEPLOY\557f88cc-6194-41fb-84b0-6895fe8bc47d\Microsoft.Web.Deployment.dll.
Verbose: Copying temporary agent file C:\Program Files\IIS\Microsoft …
Run Code Online (Sandbox Code Playgroud)

msdeploy msdeployserviceagent iis-7.5

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

MsDeploy runCommand provider - 未经授权的错误

我正在测试msdeploy以在我们的自定义安装程序进程中运行远程命令,但无论我如何配置它,我都无法让它允许我与普通用户一起使用runCommand.

我正在使用的电话是(为清晰起见):

"C:\program Files\IIS\Microsoft Web Deploy\msdeploy.exe" 
    -verb:sync 
    -source:runCommand="testcommand.bat" 
    -dest:auto,wmsvc="https://server:8172/msdeploy.axd?site=Default Web Site",authType=basic,userName=server\username,password=xxxxxx 
    -allowUntrusted
Run Code Online (Sandbox Code Playgroud)

用户是服务器上的本地用户,并已添加到"默认网站"的"IIS管理员权限"中.testcommand.bat只是一个包含"dir"的普通批处理文件.

我在管理服务委派下设置了runCommand提供程序(Actions ="*",Path Type ="Path Prefix",Path ="{userScope}",Identity Type ="Specific User")

如果我将用户添加到本地管理员组,它可以正常工作.

由于某些已启用的日志记录,我在事件日志中收到以下内容:

Tracing deployment agent exception. Request ID '97beb70b-33da-4445-b3be-d3cf3e6db8b7'. 
Request Timestamp: '08/31/2012 18:05:25'. 
Error Details:
    Microsoft.Web.Deployment.DeploymentUnauthorizedAccessException: Attempted to perform an unauthorized operation. runCommand http://go.microsoft.com/fwlink/?LinkId=178034
    at Microsoft.Web.Deployment.DelegationHelper.ImpersonateForOperation(String deploymentAction, String deploymentProvider, String deploymentPath, DelegationContextCache cache)
    at Microsoft.Web.Deployment.DelegationHelper.ImpersonateForOperation(String deploymentAction, DeploymentObject deploymentObject)/>
    at Microsoft.Web.Deployment.DeploymentAgent.HandleRequest(DeploymentAgentAsyncData asyncData)
Run Code Online (Sandbox Code Playgroud)

我已经了解了http://technet.microsoft.com/en-us/library/ee619740(WS.10).aspx中的两个基于权限的修复程序,但它们没有任何区别.

非常感谢任何建议 - 我非常接近在这里撕裂我的头发!

msdeploy webdeploy

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

如何使用Visual Studio 2012和MSdeploy将PDB文件包含到Package ZIP文件中

我需要能够将PDB文件包含到我在Visual Studio中运行"发布"命令以创建MSDeploy包时创建的ZIP文件中.

我可以在文件夹中看到PDB文件,但它们没有进入ZIP文件

我需要设置一些配置设置吗?

是的我知道这不是标准做法!

msdeploy pdb

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