使用cygwin sshd在MSBuild脚本中调用远程MSBuild脚本

使用cygwin sshd在MSBuild脚本中调用远程MSBuild脚本,msbuild,cygwin,openssh,Msbuild,Cygwin,Openssh,我正在尝试为部署和备份执行一些MSBuild自动化。我尝试了几种不同的远程执行平台(Powershell/WMI、PsExec和Cygwin),但都遇到了一些问题 对于Powershell和PsExec,我认为问题在于机器上使用了一些安全基线。我不能完全控制机器和域 我发现最稳定的场景是cygwin/openssh。但是,当我在MSBuild中运行plink并尝试远程调用MSBuild时,MSBuild挂起而不告诉我错误。如果我从提示符直接运行plink,一切正常 MSBuild脚本如下所示:

我正在尝试为部署和备份执行一些MSBuild自动化。我尝试了几种不同的远程执行平台(Powershell/WMI、PsExec和Cygwin),但都遇到了一些问题

对于Powershell和PsExec,我认为问题在于机器上使用了一些安全基线。我不能完全控制机器和域

我发现最稳定的场景是cygwin/openssh。但是,当我在MSBuild中运行plink并尝试远程调用MSBuild时,MSBuild挂起而不告诉我错误。如果我从提示符直接运行plink,一切正常

MSBuild脚本如下所示:

<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">   
    <PropertyGroup>
        <Plink>"c:\Program Files (x86)\PuTTY\plink.exe"</Plink>
        <UserName></UserName>
        <Password></Password>
        <HostName>localhost</HostName>
        <RemoteCommand2>/cygdrive/c/SandBox/remotemsbuild/echoalotoffiles.bat</RemoteCommand2>      
    </PropertyGroup>

    <Target Name="Build">       
        <Exec Command="$(Plink) -l $(UserName) -pw $(Password) -batch $(HostName) $(RemoteCommand2)" />
    </Target>

    <Target Name="EchoALotOfFiles">
        <ItemGroup>
            <SandBoxFiles Include="$(MSBuildProjectDirectory)\..\**\*.*" />
        </ItemGroup>
        <Message Text="@(SandBoxFiles)" />
    </Target>
 </Project>
如果我从命令行运行plink,一切都会正常工作


有什么猜测吗?

只是用默认的cygwin sshd设置尝试了一下,我无法重现这个问题。首先在命令行上运行plink登录并确保密钥已缓存,然后从msbuild运行
命令=“/path/to/plink-l-p-batch localhost ls
并正确列出我的主目录中的所有文件。您能否检查像ls etc这样的基本命令是否工作,以及msbuild挂起时会发生什么情况?此时plink进程是否仍在运行?流为:MSBuild local->plink->MSBuild remote。。。你试过这个例子吗?是的,也试过,效果不错。我没有太多的文件要列出,也许你达到了极限了?你能得到一个简单的消息任务来工作吗?您的echoalotoffiles.bat中到底有什么?感谢您对这个问题的关注。我将重做我的样本以提供更多反馈(这个问题从11月13日起就在这里),我甚至没有注意到。。嗯,一个尚未回答但仍然相关的问题越老,就越值得回答:]
Microsoft (R) Build Engine version 4.0.30319.17929
[Microsoft .NET Framework, version 4.0.30319.17929]
Copyright (C) Microsoft Corporation. All rights reserved.

Build started 02/11/2013 12:01:45.
Project "C:\SandBox\remotemsbuild\remotemsbuild.build" on node 1 (EchoALotOfF
iles target(s)).
EchoALotOfFiles: