2012-03-08 21 views
6

Po prostu potrzebuję utworzyć pakiet Web Deployement przy użyciu budowania TFS i nie chcę go automatycznie wdrażać w usługach IIS.Jak utworzyć pakiet wdrożenia WWW za pomocą TFS

dodałem poniżej dwóch parametrów budowy Definicja -> Argumenty msbuild

/p: CreatePackageOnPublish = true/p: DeployOnBuild = true

probelm jest ja nie otrzymuję Plik ZIP w miejscu upuszczenia i otrzymaniu następującego błędu.

C: \ Program Files \ MSBuild \ Microsoft \ VisualStudio \ v10.0 \ Web \ Microsoft.Web.Publishing.targets (1657): Opcja "MapUriToIisWebServer" zadanie nieoczekiwanie nie powiodło się. System.Runtime.InteropServices.COMException (0x80005000): Nieznany błąd (0x80005000) na System.DirectoryServices.DirectoryEntry.Bind (Boolean throwIfFail)
na System.DirectoryServices.DirectoryEntry.Bind() w System.DirectoryServices.DirectoryEntry .get_IsContainer() w System.DirectoryServices.DirectoryEntries.CheckIsContainer() w System.DirectoryServices.DirectoryEntries.Find (String name, String schemaClassName) w Microsoft.Web.Publishing.Tasks.MapUriToIisWebServer.get_IisMajorVersion() w Microsofcie .Web.Publishing.Tasks.MapUriToIisWebServer.Execute() pod adresem Microsoft.Build.BackEnd.TaskExecutionHost.Microsoft.Build. BackEnd.ITaskExecutionHost.Execute() na Microsoft.Build.BackEnd.TaskBuilder.ExecuteInstantiatedTask (ITaskExecutionHost taskExecutionHost, TaskLoggingContext taskLoggingContext, TaskHost taskHost, ItemBucket wiadro, TaskExecutionMode howToExecuteTask, Boolean & taskResult)

co mogłoby być problemem?


Teraz otrzymuję inny błąd

błąd. Zadanie wdrażania sieci nie powiodło się (obiekt typu 'manifest' i ścieżka „e: \ TFS \ Dev \ ApplicationName \ Binaries \ Release_PublishedWebsites \ ApplicationName_Package \ ApplicationName.SourceManifest.xml”nie mogą być tworzone)

błąd:. Obiekt typu 'manifest' i ścieżka 'e: \ TFS \ Dev \ ApplicationName \ Binaries \ Release_PublishedWebsites \ ApplicationName_Package \ ApplicationName.SourceManifest.xml' nie może być stworzony.

błąd: co najmniej jeden wpis w manifeście "sitemanifest" jest nieprawidłowy.

Błąd: Nazwa aplikacji "/ ApplicationName" nie istnieje w witrynie "Domyślna witryna sieci Web".

+0

Któryś jest dostępny? – Gansun

+0

Te właściwości powodują, że pipeline do publikowania w sieci wykorzystuje ustawienia projektu, chyba że je przesłonisz. Czy możesz nam powiedzieć, w jaki sposób konfigurowane są ustawienia związane z publikacją we właściwościach twojego projektu? –

+0

„Tworzenie pakietu deployement jako plik ZIP” jest zaznaczone – Gansun

Odpowiedz

5

Uważam, że wystarczy dodać cel "Pakiet" do swojej kompilacji dla projektu internetowego.

/t:Build;Package 

Używam tego celu w moich TFS zbudować wygenerować folder _PublishedWebsite z zamkiem pakietu na chwilę się z sukcesu.

EDIT: Objaśnienie docelowego pakietu Jeśli spojrzeć na pliku csproj dla aplikacji internetowej jako plik XML, zobaczysz, że zawiera następujące

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

ta obejmuje kilka celów internetowych do twojego procesu budowania. Złamać ten plik otwarty i na dole zobaczysz, że to z kolei obejmuje

<Import Project="..\Web\Microsoft.Web.Publishing.targets" Condition="Exists('..\Web\Microsoft.Web.Publishing.targets')" /> 

Plik ten zawiera definicję procesu wdrażania sieci dla MSBuild. Zobaczysz, że deklaruje zmienną do oznaczenia „target”, aby powołać się na Deploy jako „pakiet”

<DeployDefaultTarget Condition="'$(DeployDefaultTarget)'==''">Package</DeployDefaultTarget> 

Jeśli czytasz przez tego pliku dalej to daje wyobrażenie jak Pakowanie i wdrażanie pracować pod osłonami i jaki zestaw właściwości i celów można manipulować, aby dostosować swoją kompilację.

Krótko mówiąc jednak, jeśli zadzwonisz

msbuild yourwebapplication.csproj /t:Package /p:Configuration=Release 

Należy zbudować ci pakietu wdrażania WWW dla konfiguracji uwolnienia swojej aplikacji.

+1

Czy możesz wyjaśnić więcej? – Gansun

+0

więc '/ p: CreatePackageOnPublish = true' nie wystarczy, musimy wywołać sam cel pakietu? –

0

miałem ten sam problem, a jedyną rzeczą, która rozwiązane było to:

  1. Otwórz swoją Zarządzanie IIS konsoli
  2. idź do domyślnej witryny sieci Web
  3. Dodaj nową aplikację o nazwie „ApplicationName”
  4. Ponownie uruchom msbuild. To będzie działać.
0

Możliwy duplikat MSBuild DeployOnBuild=true not publishing

miałem ten sam problem z Atlassian Bamboo, i aby to naprawić to dla mnie: Od maszynie z Visual Studio skopiować zawartość „C: Program Files \ (x86) \ MSBuild \ Microsoft \ VisualStudio \ v10.0 \ Web "do serwera TFS Build.

Powiązane problemy