2013-04-25 12 views
5

Wiele próbowałem dzisiaj, aby moja konstrukcja działała w Teamcity, ale bezskutecznie.Awaria zespołu TeamCity

Oto moja konfiguracja.

Mam 2 konfiguracje kompilacji w TeamCity

  1. Build Solution
  2. Build Deployment Package Debug

Build Solution jest wyzwalany przez zaewidencjonowania SVN i tworzy plik rozwiązania. Ta konfiguracja działa dobrze.

Build Deployment Package Debug ma Build Solution jako zależność i ma dwa kroki budowania (MSBuild). Rozwiązanie zawiera dwie witryny: pierwszą i pierwszą. Jeden krok budowania buduje stronę początkową, a drugą stronę administratora. Rezultat końcowy polega na umieszczeniu połączonych wyników w pliku zip do wdrożenia na serwerze wdrażania (nie mam jeszcze tego kawałka).

Problem polega na tym, że konfiguracja Build Deployment Package Debug nie próbuje zbudować pierwszej witryny. Jest to błąd:

[18:40:25]Step 1/2: Web (MSBuild) (29s) 
[18:40:28][Step 1/2] x.Web\x.Web.csproj.teamcity: Build target: Build (27s) 
[18:40:50][x.Web\x.Web.csproj.teamcity] MvcBuildViews (4s) 
[18:40:50][MvcBuildViews] AspNetCompiler (4s) 
[18:40:55][AspNetCompiler] C:\BuildAgent\work\252ec59002ecc2d\x.Web\obj\debug\csautoparameterize\original\web.config(39, 0): error ASPCONFIG: It is an error to use a section registered as allowDefinition='MachineToApplication' beyond application level. This error can be caused by a virtual directory not being configured as an application in IIS. 
[18:40:55][x.Web\x.Web.csproj.teamcity] Project x.Web\x.Web.csproj.teamcity failed. 
[18:40:55][Step 1/2] Step Web (MSBuild) failed 

Oto Budowanie paramters -> Właściwości systemu

Name Value 
system._PackageTempDir c:\deploypackage 
system.Configuration  Debug 
system.CreatePackageOnPublish True 
system.DeployIisAppPath Debug 
system.DeployOnBuild  True 
system.PackageLocation c:\buildshares\Debug\Debug.zip 
+1

Dlaczego głosowanie negatywne? Zadałem prawidłowe pytanie, podając wiele istotnych szczegółów. –

+0

możliwy duplikat błędu [błąd Teamcity w MVC 4 i .NET 4.5] (http://stackoverflow.com/questions/16219319/teamcity-error-with-mvc-4-and-net-4-5) –

+0

Możliwy duplikat [allowDefinition = "MachineToApplication" błąd podczas publikowania z VS2010 (ale tylko po poprzedniej kompilacji)] (http://stackoverflow.com/questions/2566215/allowdefinition-machinetoapplication-error-when-publishing- from-vs2010- but-on) – JotaBe

Odpowiedz

18

Oto co zrobiłem, aby rozwiązać ten

już miałem to w moim pliku projektu

<Target Name="MvcBuildViews" AfterTargets="AfterBuild" Condition="'$(MvcBuildViews)'=='true'"> 
    <AspNetCompiler VirtualPath="temp" PhysicalPath="$(WebProjectOutputDir)" /> 
</Target> 

Ale musiałem dodać to również

<Target Name="AfterBuild"> 
    <RemoveDir Directories="$(BaseIntermediateOutputPath)" /> 
</Target> 

W ten sposób rozwiązano problem.

Mam nadzieję, że pomoże to komuś, kto pracuje w TeamCity w przyszłości.

+1

Istnieje wiele odpowiedzi na SO odnoszących się do tego problemu, ale jest to jedyna, która faktycznie dla mnie zadziałała. Moja konfiguracja to projekt VS11, który został przekonwertowany z VS10, ma włączoną funkcję BuildMvcViews tylko w wersji Release i korzysta teraz z profili publikowania. msbuild/p: DeployOnBuild kończyło się niepowodzeniem z błędem web.config (mimo że faktycznie opublikował pakiet ...). To naprawiło to. –

+1

Praca pierwszego strzału! Dzięki –

+2

dziękuję, że wróciłeś, aby odpowiedzieć na to pytanie. wyrywałem mi włosy – spaceman