2013-07-24 17 views
8

TeamCity/MsBuild komut satırı üzerinden dağıtmaya çalıştığım iki proje (WCF C# Hizmet Uygulaması ve VB Web Kullanıcı Arayüzü) içeren bir VS 2012 çözümü var. Her proje bir yayınlama profili içeriyor - buna "Test Profili" diyoruz - bu IDE ile yürütülürken düzgün çalışıyor. İki ardışık inşa adımlar olarak çalıştırıldığındaMsBuild yayınlama profili bulamadı

Ancak, C# projesi ince dağıtır, ancak VB projesi aşağıdaki hata nedeniyle başarısız:

[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.

Her yapı adımı MsBuild v4.0 kullanmak şekilde ayarlanmış durumda, Run Platform x64, ToolsVersion 4.0. komut satırı parametreleri şunlardır: çözelti yerine projelerine karşı tek yapı adımı olarak çalıştırdığınızda

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

, ben "PublishProfiles" ile değiştirilir hata mesajında ​​"Ui_profiles" hariç aynı hatayı alıyorum.

hiç Herhangi bir yardım çok takdir edilir, bu

+1

Yapılandırma parametresi PublishProfile parametresinin değeri yerine Debug veya Release gibi bir şey olmamalıdır? – Nicodemeus

+0

Geçerli bir yapı yapılandırmasının adı Bu, –

+1

Boşluksuz bir yayınlama profili adı denemeye değer. Bu tür bir şey daha önce sorunlara neden olmuştu. –

cevap

20

kaçık beni yönlendirdiğini ben de aynı sorunu vardı ama (yayınlama seçeneklerini güncellemek için Azure SDK 1.8 güncellemesi ile) VS2010 Web Uygulama projesi için. MS tarafından sağlanan Web Publishing Hedefleri, Yayınlama Profilleri yolunu doğru değerlendirmeyecek gibi görünüyordu. içinde "PublishProfileRootFolder" parametresini zorlama (Aksi yayımlamak profilleri göz ardı edildi) derleme sunucusu

  • üzerinde Azure SDK (1.8) yüklemeden

    • :

      ben iki anahtar şeyler yapıyor sona erdi TeamCity yapı yapılandırması

    My MSBuild comman (Aksi takdirde bu, MS Web Yayıncılığı Hedefler tarafından sağlanan yanlış bir yol kullanır)

    /P: şu şekildedir: d parametreleri görünüyordu DeployOnBuild = true
    /P: PublishProfile = [(bir dosya uzantısı olmadan) Profilim'de adı]
    /P:PublishProfileRootFolder="%teamcity.build.checkoutDir% (senin yayınlama profilleri nerede depolandığını) \ Source \ Web Uygulaması \ My Projesi \ PublishProfiles"
    /P: AllowUntrustedCertificate = true
    /P:Password=%env.DomainPassword%

    Umut bu aynı birilerini yardımcı olur tekne!

  • +3

    /p: PublishProfileRootFolder bunu benim için ayarladı, ancak değer etrafında tırnak işaretleri olmadan. – Tom

    +3

    YEEES !! OH DEĞİL TANRI YES! ... iki hafta ... "Yapı sunucusuna Azure SDK'sını (1.8) yükleme (Aksi takdirde yayınlama profilleri göz ardı edildi)" MSBuild 12 ile 2008 R2 sunucusunu yeni sürüme geçirdim ve bu çalışmayı durdurdu. Diğer her çözüm, "yayınlama profillerini kullanmayı bırak, komut satırı özelliklerini kullan" oldu, ancak bu sadece korkunçtu, onları kaynak kontrolü altında istedim. + MattWoodward için teşekkürler ... – RoboJ1M

    +0

    Bu bağlantıyı özellikle kullandım: https://azure.microsoft.com/en-gb/downloads/archive-net-downloads/ VS 2012 ve /p:VisualStudioVersion=11.0 kullanıyoruz bu yüzden VS 2012 Link'i indirdim. V11 hedeflerini tamir ettim galiba? Bu linkler WPI 5'i ateşleyen WPI otomatik yükleyicileri ve belirli bir dosya setini kurmak üzere ayarlanmış. Güzel ve otomatik. Netleştirmek için, tam bağlantı/sürüm, VS 2012'yi listede yer alan en son sürüm olan "2.6" başlığı altında VS 2012 idi. – RoboJ1M

    0

    Matt Woodward tarafından sağlanan yanıt beni çözüme daha yakınlaştırdı, ancak benim için kritik bir adım eksikti.

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

    Ben de bir şekilde geçirmeden yerine doğrudan MSBuild proje dosyasında $ değerini (PublishProfileRootFolder) gömmek için seçti şu şekildedir: Özellikle, MSBuild görev için publishProfileRootFolder özelliğini belirtmek için gerekli komut satırı parametresi:

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

    Benzer bir sorunla karşılaştı. Benim durumumda 'yol çok uzun' bir sorun oldu. Yayınlama profilinin adını kısaltdığımda, web dağıtımı paketi sorunsuz bir şekilde oluşturuldu.

    +0

    Similiar, Ben bir vardı. Yayınlama Profili adında ve kaldırılıncaya kadar başarısız olsaydı. – Terry