0

在为我的解决方案创建部署项目时,已经注意到奇怪的行为。我正在使用 webdeploy 来部署我的网络应用程序。当把这个

<Exec Command="$(MsBuildBinPath)\msbuild.exe     $(SourceControlPath)\...\myproject.csproj /p:configuration=Release /p:DeployOnBuild=True /p:DeployTarget=MSDeployPublish /p:MSDeployServiceUrl=https://x.x.x.x:8172/msdeploy.axd /p:MSDeployPublishMethod=WMSvc /p:DeployIisAppPath=&quot;Default Web Site&quot; /p:username=username /p:password=password /p:AllowUntrustedCertificate=True /P:CreatePackageOnPublish=True">
</Exec>

在我的部署项目文件中,它可以毫无问题地构建和部署我的应用程序。

但是使用具有完全相同的属性集的 MSBuild 任务

    <MSBuild Properties="Configuration=$(Configuration);DeployOnBuild=True;
             DeployTarget=MSDeployPublish;MSDeployServiceUrl=https://x.x.x.x:8172/msdeploy.axd;
             MSDeployPublishMethod=WMSvc;DeployIisAppPath=&quot;Default Web Site&quot;;
             UserName=username;Password=password;
             AllowUntrustedCertificate=True;CreatePackageOnPublish=True"
            Projects="$(SourceControlPath)\...\myproject.csproj"
    ></MSBuild>

给我一个错误:C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v10.5\Web\Microsoft.Web.Publishing.targets(4196, 5): 错误 ERROR_COULD_NOT_CONNECT_TO_REMOTESVC: Web 部署任务失败。(无法使用指定的进程(“Web 管理服务”)连接到远程计算机(“xxxx”),因为服务器没有响应。请确保远程计算机上的进程(“Web 管理服务”)已启动。 ..

所以,我在想这两种方法基本上都是一样的。第二种方法有什么问题?

4

1 回答 1

0

问题可能是您具有 Properties 属性的转义引号。您是否尝试过不包括“ 围绕默认网站?

我用来使文件更具可读性的一种方法是通过项目组传递参数。

<ItemGroup>
    <DeployArgs Include="Configuration=$(Configuration)" />
    <DeployArgs Include="DeployOnBuild=True" />
    <DeployArgs Include="DeployTarget=MSDeployPublish" />
    <DeployArgs Include="MSDeployServiceUrl=https://x.x.x.x:8172/msdeploy.axd" />
    <DeployArgs Include="MSDeployPublishMethod=WMSvc" />
    <DeployArgs Include="DeployIisAppPath=Default Web Site" />
    <DeployArgs Include="UserName=username" />
    <DeployArgs Include="Password=password" />
    <DeployArgs Include="AllowUntrustedCertificate=True" />
    <DeployArgs Include="CreatePackageOnPublish=True" />
 </ItemGroup>
 <MSBuild Properties="@(DeployArgs)"
          Projects="$(SourceControlPath)\...\myproject.csproj" 
 />
于 2013-10-18T13:58:05.870 回答