2013-02-26 19 views
5

Mam projekt korzystający z WiX. Działa dobrze na moim komputerze lokalnym, ale kiedy publikuję na serwerze kompilacji, kompilacja rozwija się w następujący sposób.WiX nie działa na serwerze budowania

Z MSBuild zalogować

Using "HeatDirectory" task from assembly "C:\Program Files (x86)\WiX Toolset v3.6\bin\\WixTasks.dll". 
Task "HeatDirectory" 
    Command: 
    C:\Program Files (x86)\WiX Toolset v3.6\bin\Heat.exe dir "C:\Builds\3\Project\Foo Bar - CI\Sources\Company.Foobar.UI\obj\BuildServer\Package\PackageTmp\\" -cg Company.Foobar.UI_Project -dr INSTALLLOCATION -scom -sreg -srd -var var.WebServiceProjectDir -ag -sfrag -out web\Company.Foobar.UI.wxs 
    Could not load file or assembly 'file:///C:\Program Files (x86)\WiX Toolset v3.6\bin\Heat.exe' or one of its dependencies. An attempt was made to load a program with an incorrect format. 
    at System.Reflection.RuntimeAssembly._nLoad(AssemblyName fileName, String codeBase, Evidence assemblySecurity, RuntimeAssembly locationHint, StackCrawlMark& stackMark, IntPtr pPrivHostBinder, Boolean throwOnFileNotFound, Boolean forIntrospection, Boolean suppressSecurityChecks) 
    at System.Reflection.RuntimeAssembly.InternalLoadAssemblyName(AssemblyName assemblyRef, Evidence assemblySecurity, RuntimeAssembly reqAssembly, StackCrawlMark& stackMark, IntPtr pPrivHostBinder, Boolean throwOnFileNotFound, Boolean forIntrospection, Boolean suppressSecurityChecks) 
    at System.Reflection.RuntimeAssembly.InternalLoadAssemblyName(AssemblyName assemblyRef, Evidence assemblySecurity, RuntimeAssembly reqAssembly, StackCrawlMark& stackMark, Boolean throwOnFileNotFound, Boolean forIntrospection, Boolean suppressSecurityChecks) 
    at System.Reflection.RuntimeAssembly.InternalLoadFrom(String assemblyFile, Evidence securityEvidence, Byte[] hashValue, AssemblyHashAlgorithm hashAlgorithm, Boolean forIntrospection, Boolean suppressSecurityChecks, StackCrawlMark& stackMark) 
    at System.Reflection.Assembly.LoadFrom(String assemblyFile) 
    at Microsoft.Tools.WindowsInstallerXml.Build.Tasks.WixToolTask.ExecuteToolThread(Object parameters) 

mam Wix 3.6 zainstalowany na serwerze kompilacji i konto z systemem TFS zbudować jest notowana w grupie Administratorzy domeny.

+0

Czy możesz potwierdzić, że "C: \ Program Files (x86) \ WiX Toolset v3.6 \ bin \ Heat.exe" istnieje? –

+0

Tak, istnieje. – Cookie

+0

Spróbuj [włączyć rejestrowanie powiązania zespołu] (http://www.hanselman.com/blog/BackToBasicsUsingFusionLogViewerToDebugObscureLoaderErrors.aspx) i sprawdź, czy potrafi powiedzieć, który zespół jest najważniejszą przyczyną i dlaczego. – shambulator

Odpowiedz

6

Właściwie problem dotyczył tylko nieporozumień architektury. Jeden z projektów kompilował się tylko w x86, więc musiał zmienić buildserver, by używał x86.

Edit Build Process MSBuildPlatform X86

+1

"Podjęto próbę załadowania programu o nieprawidłowym formacie." to czerwona flaga dla niespójności platformy. –

+0

Dziękuję bardzo! Całkowicie zaoszczędziłem mi czasu, próbując zagłębić się w inne problemy z zależnościami. – SteckDEV

0

Spróbuj owijając swoje polecenia w cudzysłów

"C:\Program Files (x86)\WiX Toolset v3.6\bin\Heat.exe" 

MS build może mieć problemy ze ścieżkami, które obowiązuje w nim.

+0

To bezużyteczne Używam http://www.chrissurfleet.co.uk/post/2011/06/30/simplify-deployment-with-visual-studio-and-wix.aspx Należy pamiętać, że wezwanie do ogrzewania używa buduj akcję, więc nie mogę umieszczać w niej cytatów. – Cookie

+0

Dobry pomysł, Kyle, chociaż w tym przypadku komunikat o błędzie wygląda na prawidłową ścieżkę exe i po prostu nie można jej załadować. Czuje się jak brakująca zależność ... –

Powiązane problemy