2013-07-24 10 views
8

Mam rozwiązanie VS 2012, które zawiera dwa projekty (WCF C# Service App i VB Web UI), które próbuję wdrożyć za pośrednictwem wiersza polecenia TeamCity/MsBuild. Każdy projekt zawiera profil publikowania - nazwijmy go "Profil testowy" - który działa poprawnie po uruchomieniu z wykorzystaniem IDE.MsBuild nie można znaleźć profilu publikowania

Jednak, gdy są wykonywane w dwóch kolejnych etapach budowy, projekt C# wdraża w porządku, ale projekt VB nie powiedzie się z powodu następującego błędu:

[09:27:05][ValidatePublishProfileSettings] GetPublishingLocalizedString [09:27:05][GetPublishingLocalizedString] C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v11.0\Web\Microsoft.Web.Publishing.targets(4435, 5): The value for PublishProfile is set to 'Test Profile', expected to find the file at 'C:\BuildAgent\work\61493e349d61af8c\Yms.Web.Ui__profiles\Test Profile.pubxml' but it could not be found.

Każdy etap budowy jest skonfigurowany do korzystania MSBuild v4.0, Run Platforma x64, ToolsVersion 4.0. Parametry wiersza poleceń są:

/P:Configuration="Test Profile"
/p:DeployOnBuild=true /p:PublishProfile="Test Profile"
/p:VisualStudioVersion=11.0 /p:Password=james2

Przy wykorzystaniu pojedynczego etapu budowy w stosunku do rozwiązania, a nie projektów, otrzymuję ten sam błąd, z wyjątkiem „Ui_profiles” w komunikacie o błędzie jest zastąpiony „PublishProfiles”.

Każda pomoc w ogóle jest bardzo doceniane, to doprowadza mnie Batty

+1

Czy parametr konfiguracyjny nie powinien wyglądać jak Debugowanie lub wydanie, a nie wartość parametru PublishProfile? – Nicodemeus

+0

Jest to nazwa poprawnej konfiguracji kompilacji. –

+1

Warto wypróbować nazwę profilu publikowania bez spacji. Takie rzeczy już wcześniej powodowały problemy. –

Odpowiedz

20

miałem dokładnie ten sam problem, ale dla projektu VS2010 Web Application (z aktualizacją Azure SDK 1.8, aby zaktualizować opcje Publishing). Wydawało się, że cele publikowania w Internecie dostarczone przez MS nie będą poprawnie oceniać ścieżki do profili publikowania.

skończyło się robi dwie kluczowe rzeczy:

  • z instalacją Azure SDK (1.8) na serwerze kompilacji (inaczej profile publikują były ignorowane)
  • zmuszając parametr „PublishProfileRootFolder” w TeamCity konfiguracja build (w przeciwnym wypadku używa błędnej ścieżki dostarczone przez Targets MS Web Publishing)

Moja MSBuild comman Parametry d wyglądał następująco:

/P: DeployOnBuild = true
/P: PublishProfile = [nazwa mojego profilu (bez rozszerzenia pliku)]
/P:PublishProfileRootFolder="%teamcity.build.checkoutDir% \ Source \ Web Application \ mojego projektu \ PublishProfiles”(gdzie przechowywane są z profili publikowania)
/P: AllowUntrustedCertificate = true
/P:Password=%env.DomainPassword%

Nadzieja to pomaga kogoś w taki sam łódź!

+3

Naprawiono dla mnie/p: PublishProfileRootFolder, ale bez cudzysłowu wokół wartości. – Tom

+3

YEEES !! OH SZANOWNY BÓG TAK !! ... dwa tygodnie ... "instalacja pakietu Azure SDK (1.8) na serwerze kompilacji (w przeciwnym razie profile publikowania zostały zignorowane)" Uaktualniłem serwer kompilacji do wersji 2008 R2 z MSBuild 12, co przestało działać. Każde inne rozwiązanie było "przestań używać profili publikowania, korzystaj z właściwości wiersza poleceń", ale to po prostu okropne, chciałem je pod kontrolą źródła. Bogu dzięki za + MattWoodward ... – RoboJ1M

+0

W szczególności użyłem tego linku: https://azure.microsoft.com/en-gb/downloads/archive-net-downloads/ Używamy VS 2012 i/p:VisualStudioVersion=11.0 więc pobrałem link VS 2012. Domyślam się, że to naprawiło cele v11? Te łącza to automatyczne programy ładujące WPI, które uruchamiają WPI 5 i ustawiają go, aby zainstalować określony zestaw plików. Ładne i automatyczne. Aby wyjaśnić, dokładny link/wersja to VS 2012 pod nagłówkiem "2.6", najnowsza wersja zawierająca VS 2012 na liście. – RoboJ1M

0

Odpowiedź dostarczona przez Matt Woodward zbliżyła mnie do rozwiązania, ale brakowało mi jednego krytycznego kroku. Konkretnie, musiałem podać publishProfileRootFolder nieruchomość za zadanie MSBuild w następujący sposób:

<Target Name="Publish"> 
    <MSBuild Targets="Build" Projects="$(SolutionDir)\$(ProjectFile)" 
    Properties="DeployOnBuild=true;publishProfile=UAT;publishProfileRootFolder=$(PublishProfileRootFolder);publishUrl=$(PublishUrl)" /> 
</Target> 

Wybrałem również osadzić wartość dla $ (PublishProfileRootFolder) w pliku projektu programu MSBuild bezpośrednio w przeciwieństwie do przekazania go jako parametr wiersza poleceń:

<PropertyGroup> 
    <PublishProfileRootFolder>$(MSBuildProjectDirectory)\MyProjectPath\Properties\PublishProfiles</PublishProfileRootFolder> 
</PropertyGroup> 
1

Zrobiłem podobny problem dzisiaj. W moim przypadku była to kwestia zbyt długa. Gdy skróciłem nazwę profilu publikowania, pakiet wdrożenia sieci został zbudowany bez problemu.

+0

Pozdrawiam, miałem. w nazwie profilu publikowania, a jeśli się nie powiedzie, dopóki nie usunę. – Terry