标签: msdeploy

Powershell 2.0在使用c /之后从MsDeploy运行时挂起

我试图在MSDeploy命令的preSync调用期间调用powershell,但powershell在调用之后不会退出该进程.该命令(来自命令行):"tools/MSDeploy/msdeploy.exe"-verb:sync -preSync:runCommand ="powershell.exe -NoLogo -NoProfile -NonInteractive -ExecutionPolicy Unrestricted -Command C:/MyInstallPath/deploy.ps1 Set -WebAppOffline Uninstall-Service",waitInterval = 60000 -usechecksum -source:dirPath ="build/for-deployment"-dest:wmsvc = BLUEPRINT-X86,username = deployer,password = deployer,dirPath = C:/ MyInstallPath

我在这里使用了一个hack(http://therightstuff.de/2010/02/06/How-We-Practice-Continuous-Integration-And-Deployment-With-MSDeploy.aspx)来获取powershell进程并将其杀死但是没用.我也尝试过taskkill和sysinternals等效,但没有任何东西可以杀死进程,以免MSDeploy出错.该命令已执行,但随后就在那里.什么可能导致powershell像这样挂起的想法?我在网络上发现了一些其他类似的问题,但没有答案.

环境是Win 2K3,使用Powershell 2.0.

更新:这是我用来调用我的powershell命令的.vbs脚本.使用'cscript.exe path/to/script.vbs'调用:

Option Explicit
Dim oShell, appCmd,oShellExec
Set oShell = CreateObject("WScript.Shell")
appCmd = "powershell.exe -NoLogo -NoProfile -NonInteractive -ExecutionPolicy Unrestricted -Command ""&{ . c:/development/materialstesting/deploy/web/deploy.ps1; Set-WebAppOffline }"" "
Set oShellExec = oShell.Exec(appCmd)
oShellExec.StdIn.Close()
Run Code Online (Sandbox Code Playgroud)

powershell msdeploy

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

无论其参数如何,MSBuild都不会部署

这与我昨天提出的问题有关,但可能最好单独询问.

我有一个运行.csproj文件版本的TFS 2010服务器,以及一个安装了msdeploy的IIS6框.我希望构建自动发布构建,但无论我发送到其参数中,它都不会尝试运行发布.我可以把DeployTarget = TotalCarp,它仍然运行没有错误,但不会尝试发布.

下面是相关构建的日志部分:

运行MSBuild for Project

初始属性值
AdditionalVCOverrides =
CommandLineArguments =/p:SkipInvalidConfigurations = true/p:DeployOnBuild = True/p:DeployTarget = TotalCarp/p:MsDeployPublishMethod = RemoteAgent/p:DeployIisAppPath ="WebRoot/ExternalContractSupportWeb"/ p:MsDeployServiceUrl = whatever/p: AllowUntrustedCertificated = True/p:UserName = Username/p:Password = Password
Configuration = Test
GenerateVSPropsFile = True
LogFile =
LogFileDropLocation =\g10svhudtfs\TFSBuilds\ExternalContractSupport\TestBuild\TestBuild_20101101.25\logs
MaxProcesses = 1
OutDir = C:\ Builds\1\CustomerTerms\TestBuild\Binaries
Platform =任何CPU
Project = C:\ Builds\1\CustomerTerms\TestBuild\Sources\ExternalContractSupportWeb\ExternalContractSupportWeb.csproj
ResponseFile =
RunCodeAnalysis = AsConfigured
Targets =
TargetsNotLogged = String [] Array
ToolPath =
ToolPlatform = Auto
Verbosity = Diagnostic

C:\ Windows\Microsoft.NET\Framework64\v4.0.30319\MSBuild.exe/nologo/noconsolelogger"C:\ Builds\1\CustomerTerms\TestBuild\Sources\ExternalContractSupportWeb\ExternalContractSupportWeb.csproj"/ …

msbuild tfs msdeploy

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

MSDeploy覆盖IIS设置

我最终使用TeamCity设置来构建源代码控制更改,并使用单独的MSBuild任务设置,使用"package"目标和生成的"deploy.cmd"脚本打包并部署到登台服务器上的IIS.在构建事件,文件包含/排除等方面,一切都很完美......

但是,我遇到了如何部署软件包的问题.每当我将程序包部署到服务器时,IIS设置都会被吹走.例如,我可以设置缓存过期标头或打开静态压缩,在部署我的包后,它们将恢复为服务器的默认值.

有谁知道我怎么能解决这个问题?是否有我可以通过的参数或我可以忽略的规则?

deployment iis msdeploy visual-studio

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

将dirPath Provider与WebDeploy一起使用

我有一个在iis中托管的wcf应用程序,我正在尝试使用webdeploy打包.使用visual studio工具一切都很好,但我还需要创建一个日志文件夹并设置权限.为此,我在我的web项目中创建了一个ProjectName.wpp.target文件.该文件看起来像这样

<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">

<Target Name="CreateLogsDirectory" AfterTargets="AddIisSettingAndFileContentsToSourceManifest">   
    <!-- This must be declared inside of a target because the property 
    $(_MSDeployDirPath_FullPath) will not be defined at that time. -->
    <ItemGroup>
      <MsDeploySourceManifest Include="dirPath">
        <Path>$(_MSDeployDirPath_FullPath)\logs</Path>
        <enableRule>DoNotDeleteRule</enableRule>
      </MsDeploySourceManifest>
    </ItemGroup>
  </Target>

  <Target Name="DeclareCustomParameters" AfterTargets="AddIisAndContentDeclareParametersItems">
    <!-- This must be declared inside of a target because the property 
    $(_EscapeRegEx_MSDeployDirPath) will not be defined at that time. -->
    <ItemGroup>
      <MsDeployDeclareParameters Include="LogsDirectoryPath">
        <Kind>ProviderPath</Kind>
        <Scope>dirPath</Scope>
        <Match>^$(_EscapeRegEx_MSDeployDirPath)\\logs$</Match>
        <Value>$(_DestinationContentPath)/log</Value>
        <ExcludeFromSetParameter>True</ExcludeFromSetParameter>
      </MsDeployDeclareParameters>
    </ItemGroup>
  </Target>
</Project>
Run Code Online (Sandbox Code Playgroud)

我可以看到dirPath提供程序已添加到sourcemanifest文件中,但是当我部署该程序包时,它会尝试创建源文件路径.本质上,LogsDirectoryPAth项不替换路径.谁能指出我需要做什么?谢谢 !

msbuild msdeploy webdeploy

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

msdeploy和setparameters.xml

我遇到了msdeploy使用的SetParameters.xml文件的问题.

在我的网站中,我创建了一个parameters.xml文件,其中包含以下内容:

<parameters>
    <parameter name="enableRule" defaultValue="DoNotDeleteRule"></parameter>
</parameters>
Run Code Online (Sandbox Code Playgroud)

在构建部署包期间,此参数将添加到setParameters.xml文件中,该文件如下所示:

<parameters>
  <setParameter name="IIS Web Application Name" value="mywebsite/myservice/>
  <setParameter name="enableRule" value="DoNotDeleteRule" />
</parameters>
Run Code Online (Sandbox Code Playgroud)

但是,当我运行msdeploy(使用包的cmd)时,将忽略该参数.我尝试通过添加-setParamFile属性来调用cmd,但这没有任何区别......

有人可以帮我弄这个吗 ?

asp.net msbuild parameters msdeploy

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

Sqlproj:在命令行中部署数据库的解决方案是什么?

我目前正在使用Microsoft Web部署技术(msbuild和msdeploy命令)将网站部署到服务器.该网站需要部署数据库,两者都在同一台服务器上.我正在寻找部署数据库项目(使用命令行)的最佳解决方案,我想更好地了解有关数据库部署的所有技术.

解决方案的内容(Visual Studio 2013):

  • 一个数据库项目(适用于SQL Server 2008),
  • 一个类库(带有NHibernate的数据访问层)
  • 一个Web项目(ASP.NET MVC4).

注意:我没有自愿使用VS中的持续集成/交付工具或发布方法.我这个项目的第一个目标是了解msbuild/msdeploy如何工作......

我看了一下vsdbcmd命令,它似乎做了我想要的所有步骤......除了我需要将Visual Studio DLLs /文件导入我的远程服务器,我想知道是否有更好的方法......我也看了在msdeploy提供程序dbSqlPackage/dbDacFx,但据我所知,它使用dacpac来应用架构更改.同样,SqlPackage.exe似乎也使用dacpac.

使用dacpac听起来不错,但我对以下问题感到困惑:

  • 这是否意味着我第一次创建数据库时需要一个不同的进程?如果是,哪个命令最好?
  • 是否可以从我的sqlproj文件创建一个dacpac?如果是的话,该怎么办?

是否有其他方法可以从命令行以及您的经验和项目进行部署,部署此类项目的最佳方式是什么?

非常感谢,

deployment msdeploy vsdbcmd sqlproj sqlpackage

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

VS 2015 社区项目中不存在目标“MSDeployPublish”

项目中不存在目标“MSDeployPublish”

我看到人们参考此链接,因为它可以解决我的问题。我阅读了完整的线程并尝试了那里给出的每一个想法。没有任何效果。我也使用 VS 2015 Community 而不是 VS 2013。

我正在尝试通过 VS 2015 社区发布 Web API。我以前做过,但这次似乎不起作用。

我从服务器上的 IIS 获得了发布设置,并且连接验证工作正常。

当我进行发布时,出现此错误:

项目中不存在目标“MSDeployPublish”

我尝试了几件事,但提到最多的是(重新)安装Microsoft.Web.WebJobs.PublishNuGet 包并检查 CSPROJ 文件中的这两行:

<PropertyGroup>
<VisualStudioVersion Condition="'$(VisualStudioVersion)' == ''">10.0</VisualStudioVersion>
<VSToolsPath Condition="'$(VSToolsPath)' == ''">$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)</VSToolsPath>
</PropertyGroup>
Run Code Online (Sandbox Code Playgroud)

你已经猜到这在我的情况下不起作用(否则我不会在这里发帖)。

我注意到的第一件事是版本 10.0。我回溯了路径,但我的磁盘上没有 10.0 版本。只有 12、14 和 15。14 似乎有目标,所以我将版本更改为 14...同样的错误。

我尝试安装几个软件包,再次检查 CSPROJ 文件,但似乎没有任何反应。一遍又一遍地犯同样的错误(在这里有点沮丧......)

有没有人对此有其他解决方案?

* 更新 *

它似乎适用于其他项目。看起来这个特定项目有问题。

* 更新 2 *

我设置了一个到主机的 FTP 连接,因为我正在尝试其他的东西。我尝试使用 FTP 发布,但给出了几乎相同的错误:

项目中不存在目标“GatherAllFilesToPublish”。

msbuild msdeploy web-publishing visual-studio-2015

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

如何在ftp中使用AzureDevOps发布asp.net网站

我希望使用 AzureDevOps 作为我的 CI/CD 工具来启用我的项目 (asp.net api) CI/CD。
我希望通过 FTP 将我发布的文件上传到我的托管提供商。

目前,当通过 Azure DevOps 构建产品时,它会将应用程序创建为 Msdeploy 文件。我的托管提供商不支持通过 ftp

建造

构建步骤

构建神器 在此输入图像描述

正如您所看到的构建工件,其格式为 Web 部署

发布 在此输入图像描述 尝试上传 zip 文件和 ms 部署文件的工件。

上传文件后,服​​务器不知道如何部署 msdeploy 项目文件。 如何使用 AzureDevOps 部署网站

期望文件上传到 ftp 在此输入图像描述

我想将文件作为 ftp 支持的常规文件上传,或者我想以自动方式执行 msdeploy

ftp publishing msdeploy azure-devops

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

Backup-WDServer:如何指定加密密码

我读到了Web Deploy Powershell Cmdlet,我想开始使用它们.当然,我开始的第一项任务是备份我的测试网络服务器的当前配置状态 - 这个cmdlet应该这样做:

Backup-WDServer -ConfigOnly
Run Code Online (Sandbox Code Playgroud)

但是,当我运行它时,我得到了这个投诉 - 我不确定如何解决它:

Backup-WDServer : The property 'password' located at '/webServer/appHostConfig[@path='']/location[@path='']/section[@name='system.applicationHost/applicationPools']/applicationPools/applicationPoolDefaults/processModel' is 
marked as secure. You must specify an encryption password to archive this property.
At line:1 char:1
+ Backup-WDServer -ConfigOnly
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : InvalidOperation: (:) [Backup-WDServer], DeploymentEncryptionException
    + FullyQualifiedErrorId : Microsoft.Web.Deployment.PowerShell.BackupServer
Run Code Online (Sandbox Code Playgroud)

iis powershell cmdlet msdeploy iis-8

0
推荐指数
1
解决办法
1886
查看次数

msdeploy 停止工作,出现错误代码:ERROR_USER_NOT_ADMIN

我正在使用 msdeploy 将代码部署到开发服务器。今天早上它停止工作了。我收到 ERROR_USER_NOT_ADMIN。一切都没有改变,至少据我所知没有改变。

abc\jqin,该用户是域帐户,是本地管理员。为什么我仍然收到 ERROR_USER_NOT_ADMIN

部署:“C:\Program Files\IIS\Microsoft Web Deploy V3\msdeploy.exe” -verb:sync -source:package="C:\NetBuild\Packages\IRViewerSvc\IRViewerSvc.zip" -dest:iisApp=IRViewerSvc, computerName=tvw-irwebsvc,用户名=“abc\jqin”,密码=******** 信息:使用 ID '51e98b9d-456e-4c7e-8f1a-c696c240f431' 连接到远程服务器。EXEC:错误代码:ERROR_USER_NOT_ADMIN [C:\NetBuild\BuildScript\IRViewerSvc.build]
更多信息:使用 Web 部署代理服务连接到“tvw-irwebsvc”,但无法授权。确保您是“tvw-irwebsvc”的管理员。了解更多信息: http://go.microsoft.com/fwlink/? LinkId=221672#ERROR_USER_NOT_ADMIN 。错误:远程服务器返回错误:(401) 未经授权。[C:\NetBuild\BuildScript\IRViewerSvc.build] EXEC:错误计数:1。 [C:\NetBuild\BuildScript\IRViewerSvc.build] C:\NetBuild\BuildScript\IRViewerSvc.build(71,5):错误 MSB3073:命令 ""C:\Program Files\IIS\Microsoft Web Deploy V3\msdeploy.exe" -verb:sync -source:package="C:\NetBuild\Packages\IRViewerSvc\IRViewerSvc.zip" -dest:iisApp=IRViewerSvc ,computerName=tvw-irwebsvc,username="abc\jqin",password=********" 退出,代码为 -1。完成构建项目“C:\NetBuild\BuildScript\IRViewerSvc.build”(部署目标)——失败。

iis msdeploy msdeployserviceagent

0
推荐指数
1
解决办法
5069
查看次数

Web部署忽略MSBuild设置的SkipExtraFilesOnServer

我正在使用MSBuild在CruiseControl Server上创建Web部署程序包以部署Web应用程序。部署后,软件包中未包含的所有内容都将在我们的服务器上删除。

我尝试将选项SkipExtraFilesOnServer选项设置为true。但是它被Web Deploy忽略

<Target Name="CreateDeploymentPackage">
    <MSBuild Projects="$(Web)" Targets="Package"
      properties="Platform=$(Platform);
      Configuration=$(Configuration);
      DeployOnBuild=False;
      DeployTarget=Package;
      SkipExtraFilesOnServer=True;
      MSDeployUseChecksum=True;
      PackageLocation=$(DeployDirectory)\_PublishedWebsites\DeployPackage\$(CurrentProject).zip;
      PackageAsSingleFile=True;
      _PackageTempDir=$(PackageOutputDir)\temp;">
    </MSBuild>
</Target>
Run Code Online (Sandbox Code Playgroud)

为什么这不起作用?我发现的每个文档都说应该。

asp.net msbuild package msdeploy

0
推荐指数
1
解决办法
2275
查看次数

VSMSDeploy 任务因超时而失败

从 Visual Studio 2015 内部尝试 Web 部署时,我得到以下信息:

Severity    Code    Description Project File    Line    Suppression State
Error       Web deployment task failed. (Could not complete the request to remote agent URL '<mydomain>'.)

Could not complete the request to remote agent URL '<mydomain>'.
The operation has timed out App C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v14.0\Web\Microsoft.Web.Publishing.targets    4283    
Run Code Online (Sandbox Code Playgroud)

这发生在我使用 Visual Studio UI 成功验证连接之后。

我也成功发布到本地文件系统。

它发生了一个相对较快的连接(每秒上传 1MB)。

它发生在多个连接(不同的 ISP)上。

这是在我去年使用相同方法成功部署多次之后发生的。

在创建新的最小网络应用程序并部署它时,我不会发生

timeout web-deployment msdeploy visual-studio

0
推荐指数
1
解决办法
1197
查看次数