使用MSDeploy将控制台应用程序部署到DMZ服务器

时间:2012-05-28 07:30:04

标签: tfs msbuild tfs2010 tfsbuild msdeploy

我正在尝试使用带有MSBuild和Team Foundation Server的autodeploy将控制台应用程序部署到DMZ服务器上的文件夹。

我已经在同一台服务器上部署了多个站点,效果很好。我尝试了多种方法,但没有部署文件。

首先,我尝试以与我网站相同的方式部署控制台应用程序,即:

<MSBuild
    Projects="$(SolutionRoot)\MySolution.sln"
    Properties="AllowUntrustedCertificate=True;AuthType=Basic;
    Configuration=DEBUG;CreatePackageOnPublish=True;                                
    DeployIisAppPath=Default Website/dummy.dev.myapp;
    DeployOnBuild=True;DeployTarget=MsDeployPublish;
    MSDeployPublishMethod=WMSvc;
    MsDeployServiceUrl=https://xxx.xxx.xxx.xxx:8172/MsDeploy.axd;
    UserName=userid;Password=password;UseMsdeployExe=True"
/>

没有成功。

编辑:未返回任何错误消息。这一切似乎进展顺利。

然后,我还尝试按如下方式部署控制台应用程序:

<Exec Command="&quot;C:\Program Files\IIS\Microsoft Web Deploy V2\MSDeploy.exe&quot; 
                -verb:sync 
                -source:contentpath=&quot;$(OutDir)\MyApp.Precompiled&quot; 
                -dest:contentpath=&quot;D:\dev.myapp&quot;,computername=xxx.xxx.xxx.xxx,username=userid,password=password" 
                ContinueOnError="false" />

我实际上也尝试使用computername作为https://xxx.xxx.xxx.xxx:8172/MsDeploy.axd

编辑:以下是我得到的。 EXEC:FileOrFolderNotFound  EXEC:无法创建“contentPath”类型的对象和路径“E:\ Builds \ 1 ... \ dev.myapp”。  EXEC:路径'\?\ E:\ Builds \ 1 ... \ dev.myapp'无效。  执行官:1。  E:\ Builds \ 1 ... \ BuildType \ Targets \ Deploy.targets(142):命令“”C:\ Program Files \ IIS \ Microsoft Web Deploy V2 \ MSDeploy.exe“-verb:sync -source:contentpath =“E:\ Builds \ 1 ... \ dev.myapp”-dest:contentpath =“D:\ dev.myapp”,computername = https://xxx.xxx.xxx.xxx:8172 / MsDeploy.axd, username = userid,password = password“退出,代码为-1。 我意识到我没有读过所有的错误,我真的需要UNC路径吗?

有谁知道怎么做?

3 个答案:

答案 0 :(得分:8)

我终于找到了如何使它发挥作用。

<Exec Command="&quot;C:\Program Files\IIS\Microsoft Web Deploy V2\MSDeploy.exe&quot; 
            -verb:sync 
            -source:contentpath=&quot;$(OutDir)\MyApp.Precompiled&quot; 
            -dest:contentpath=&quot;D:\dev.myapp&quot;,computername=https://xxx.xxx.xxx.xxx:8172/MsDeploy.axd,username=userid,password=password,authtype=Basic 
            -allowUntrusted=True" 
            ContinueOnError="false" />

我将计算机名更改为 computername = https://xxx.xxx.xxx.xxx:8172 / MsDeploy.axd ,添加了 authtype = Basic allowUntrusted =真实,瞧它有效。

如果对第一个选项出了什么问题没有任何反馈,那真是令人沮丧。但是当我使用第二种选择时,我得到了反馈。

如果有人知道如何使用MSBuild任务完成这项工作,请随时赐教。

答案 1 :(得分:3)

尝试使用dirPath提供程序而不是contentPath,它的行为更像是文件夹同步,而不是IIS网站部署。

答案 2 :(得分:1)

考虑到使用EXEC任务进行同步,您确定在csproj(或vbproj)文件中有 Microsoft.WebApplication.targets 吗?我可以看到它只是忽略了没有包含正确目标文件的msbuild任务。

例如,在我的Web服务项目文件中,我将此文件放在我的csproj文件的底部

<Import Project="$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v10.0\WebApplications\Microsoft.WebApplication.targets" />