2012-05-28 13 views
6

Próbuję wdrożyć aplikację konsoli do folderu na serwerze DMZ przy użyciu funkcji autodeploy z MSBuild i Team Foundation Server.Używanie programu MSDeploy do wdrażania aplikacji konsolowej na serwerze DMZ

Już wdrażam wiele witryn do tego samego serwera i działa świetnie. Próbowałem na wiele sposobów, ale pliki nie zostały wdrożone.

Najpierw starałem się wdrożyć aplikację konsoli w taki sam sposób, jak to zrobić na mojej stronie internetowej, czyli:

<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" 
/> 

bez powodzenia.

EDYCJA: Nie jest zwracany komunikat o błędzie. Wszystko wydaje się iść dobrze.

Następnie Próbowałem też wdrożyć aplikację konsoli w następujący sposób:

<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" /> 

I rzeczywiście próbował również z nazwa_komputera jak https://xxx.xxx.xxx.xxx:8172/MsDeploy.axd.

EDYCJA: Oto, co mam. EXEC: FileOrFolderNotFound EXEC: Nie można utworzyć obiektu typu "contentPath" ani ścieżki "E: \ Builds \ 1 ... \ dev.myapp". EXEC: Ścieżka "\? \ E: \ Builds \ 1 ... \ dev.myapp" jest niepoprawna. EXEC: 1. E: \ Builds \ 1 ... \ BuildType \ Targets \ Deploy.targets (142): Polecenie "" C: \ Program Files \ IIS \ Microsoft Web Deploy V2 \ MSDeploy.exe " : sync -source: contentpath = "E: \ Builds \ 1 ... \ dev.myapp" -est: contentpath = "D: \ dev.myapp", computername = https: //xxx.xxx.xxx.xxx: 8172/MsDeploy.axd, nazwa_użytkownika = identyfikator_użytkownika, hasło = hasło "zakończone kodem -1. Zdaję sobie sprawę, że nie przeczytałem całego błędu, czy naprawdę potrzebuję ścieżki UNC?

Czy ktoś wie, jak to zrobić?

+0

proszę pisać co miałeś błędy. –

Odpowiedz

7

W końcu dowiedziałem się, jak to działa.

<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" /> 

Zmieniłem nazwa_komputera do nazwakomputera = https: //xxx.xxx.xxx.xxx: 8172/MsDeploy.axd dodał AuthType = Podstawowe i allowUntrusted = True i voila to działało.

To było dość frustrujące, nie mając żadnej opinii na temat tego, co poszło nie tak z pierwszą opcją. Ale kiedy używałem drugiej alternatywy, otrzymałem informację zwrotną, z którą mogę pracować.

Jeśli ktoś wie, jak wykonać tę pracę za pomocą zadania MSBuild, proszę oświecić mnie.

3

Wypróbuj dostawcę dirPath zamiast contentPath, zachowa się bardziej jak synchronizacja folderów niż wdrożenie witryny sieci Web IIS.

+0

Dzięki, spróbowałem, ale w tym przypadku muszę użyć wbudowanego konta administratora, które nie jest dozwolone u mojego obecnego klienta. – Per

1

Biorąc pod uwagę synchronizację działającą przy użyciu zadania EXEC, czy upewniłeś się, że masz Microsoft.WebApplication.targets w swoim pliku csproj (lub vbproj)? Widziałem to po prostu ignorując to zadanie msbuild bez odpowiedniego pliku celów.

Na przykład w moich plikach projektowych usług internetowych, mam to w kierunku dna mojego pliku csproj

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