6

MSBuild および Team Foundation Server で autodeploy を使用して、DMZ サーバー上のフォルダーにコンソール アプリケーションをデプロイしようとしています。

すでに複数のサイトを同じサーバーに展開していますが、うまく機能しています。複数の方法を試しましたが、ファイルが展開されません。

まず、Web サイトと同じ方法でコンソール アプリを展開しようとしました。

<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 as も試しましたhttps://xxx.xxx.xxx.xxx:8172/MsDeploy.axd

編集:以下は私が得たものです。EXEC: FileOrFolderNotFound EXEC: タイプ 'contentPath' およびパス 'E:\Builds\1...\dev.myapp' のオブジェクトを作成できません。EXEC: パス '\?\E:\Builds\1...\dev.myapp' は無効です。EXEC: 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 パスが必要ですか?

誰もこれを行う方法を知っていますか?

4

3 に答える 3

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 をcomputername=https://xxx.xxx.xxx.xxx:8172/MsDeploy.axdに変更し、 authtype=BasicallowUntrusted=Trueを追加すると、うまくいきました。

最初のオプションで何がうまくいかなかったのかについてのフィードバックがまったくないことは、非常にイライラしました。しかし、私が 2 番目の方法を使用していたとき、作業するためのフィードバックがありました。

MSBuild タスクを使用してこれを機能させる方法を誰かが知っている場合は、お気軽に教えてください。

于 2012-05-29T08:55:26.517 に答える
1

EXEC タスクを使用して同期が機能したことを考慮して、csproj (または vbproj) ファイルにMicrosoft.WebApplication.targetsがあることを確認しましたか? 正しいターゲット ファイルが含まれていない msbuild タスクを無視しているだけであることがわかりました。

たとえば、私の Web サービス プロジェクト ファイルでは、これを csproj ファイルの一番下に配置しています。

<Import Project="$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v10.0\WebApplications\Microsoft.WebApplication.targets" />
于 2012-10-05T15:04:41.663 に答える