Question

Je suis serveur de test que je voudrais utiliser pour CI aussi.

Le plan est d'installer Hudson qui écoute dépôt git, sur les nouvelles commettras va chercher des changements, construit solution, exécute des tests (prend le relais de sortie), les configurations environnement de test application Web si tout est vert et noreferrer montre Chuck Norris .

Je me bats avec la première partie (ports git sont fermés atm, mais ce n'est pas le point de cette question) et dernière partie.

application elle-même est construit en utilisant .Net 4.0, Asp.Net Mvc 2 RTM et tas d'outils 3ème partie.

Dans un premier temps - ne pouvait pas construire quoi que ce soit - téléchargé .Net 4.0 kit sdk et il a aidé. Alors - ne pouvait pas construire des projets web - juste copié le contenu du dossier de C:\Program Files\MSBuild\Microsoft\VisualStudio\v10.0\ de mon poste de travail au serveur dev. Ensuite, je devais installer asp.net MVC2 rtm lui-même et la solution a finalement été la construction avec succès.

Le problème est à la dernière étape dans le germon script de compilation que je pris ici .

Voici la sortie:

  

C: \ Temp \ buildtest> build.rb -f râteau   (En C: / temp / buildtest)   Microsoft (R) Version Moteur Construire 4.0.30319.1   [Microsoft .NET Framework, version 4.0.30319.1]   Copyright (C) Microsoft Corporation 2007. Tous droits réservés.

     

Domaine -> C: \ temp \ buildtest \ src \ bin de domaine \ Release \ Domain.dll
    Infra -> C: \ temp \ buildtest \ src \ Infrastructure \ bin \ Release \ Infra.dll
    Persistance -> C: \ temp \ buildtest \ src \ Persistence \ bin \ Release \ Persistence.dll
    App -> C: \ temp \ buildtest \ src \ App bin \ Release \ App.dll
    Web -> C: \ temp \ buildtest \ src \ Web \ bin \ Release \ Web.dll
    UI -> C: \ temp \ buildtest \ src \ UI \ bin \ UI.dll
    Unité -> C: \ temp \ buildtest \ src \ bin UnitTests de \ Release \ Unit.dll
    Intégration -> C: \ temp \ buildtest \ src \ 'intégration de bin \ Release \ Integration.dll
  xUnit.net coureur de test de la console (32 bits .NET 4.0.30319.1)
  Copyright (C) 2007-10 Microsoft Corporation.

     

xunit.dll: Version 1.6.1.1521
  assemblage d'essai: C: \ temp \ buildtest \ src \ bin UnitTests de \ Release \ src \ bin UnitTests de \ Release \ Unit.dll

     

84 au total, 0 a échoué, 0 sautées, a pris 9.560 secondes
  xUnit.net coureur de test de la console (32 bits .NET 4.0.30319.1)
  Copyright (C) 2007-10 Microsoft Corporation.

     

xunit.dll: Version 1.6.1.1521
  assemblage d'essai: C: \ temp \ buildtest \ src \ Intégration de bin \ Release \ src \ Integration \ bin   \ Release \ Integration.dll

     

27 au total, 0 a échoué, 0 sautées, a pris 34.472 secondes

     

Exception non gérée: System.TypeInitializationException: Le type initialiseur fo   r 'Microsoft.Build.CommandLine.MSBuildApp' a lancé une exception. ---> System.IO.Fi   leNotFoundException: Impossible de charger le fichier ou l'assembly « Microsoft.Build.Engine, Ve   rsion = 3.5.0.0, Culture = neutre, PublicKeyToken = b03f5f7f11d50a3a » ou un de ses d   ependencies. Le système ne peut pas trouver le fichier spécifié.   Nom du fichier: « Microsoft.Build.Engine, Version = 3.5.0.0, Culture = neutral, PublicKeyT   Oken = b03f5f7f11d50a3a »      à Microsoft.Build.CommandLine.MSBuildApp..cctor ()

     

WRN: l'enregistrement de liaison Assemblée est désactivée.   Pour activer la journalisation d'échec assemblage bind, définissez la valeur de Registre [HKLM \ Software \ M   icrosoft \ Fusion! EnableLog] (DWORD) à 1.   Note: Il y a une pénalité de performance associée à l'échec assemblage bind lo   gging.   Pour désactiver cette fonction, supprimez la valeur de Registre [HKLM \ Software \ Microsoft \ Fus   ! EnableLog] ion.

     

--- Fin de trace de pile d'exception interne ---      à Microsoft.Build.CommandLine.MSBuildApp.Main ()   F, [2010-09-18T00: 35: 07,728632 # 2072] FATAL -: MSBuild Échec. Voir Construction Log F   ou Détail   avorté râteau!   MSBuild a échoué. Voir Construire Connexion Pour plus de détails   C: /Ruby191/lib/ruby/gems/1.9.1/gems/albacore-0.1.5/lib/albacore/msbuild.rb: 41: in    `Build_solution »   (Voir trace complète par tâche en cours d'exécution avec --trace)

     

C: \ Temp \ buildtest>

Voici comment mon apparence script germon comme:

require 'rubygems'
require 'albacore'
task :default => :publish

desc "Builds Interreg solution"
msbuild :build do |m|
  m.path_to_command = File.join(ENV["windir"], 
    "Microsoft.NET", "Framework", "v4.0.30319", "MSBuild.exe")
  m.properties :configuration => :Release
  m.targets :Clean, :Build
  m.solution = "Interreg.sln"
  m.verbosity = "minimal"
end

desc "Runs some tests"
xunit :tests => :build do |x|
  x.path_to_command = "lib/xunitnet/xunit.console.clr4.x86.exe"
  x.assemblies "src/UnitTests/bin/Release/Unit.dll",
    "src/Integration/bin/Release/Integration.dll"
  x.html_output = "doc"
end

desc "Publishes web application"
msbuild :publish=>:tests do |m|
  m.properties={:configuration=>:Release}
  m.targets [:ResolveReferences, :_CopyWebApplication]
  m.properties={
   :webprojectoutputdire=>"c:/temp/outputdir/",
   :outdir=>"c:/temp/outputdir/bin/"
  }
  m.solution="src/UI/UI.csproj"
end

Alors ... Qu'est-ce qui manque? Comment le faire le travail?

Comment emballer application web asp.net w / o visual studio?

Était-ce utile?

La solution

Installer le SDK Windows 7 sur votre serveur de CI, qui comprend tout ce dont vous avez besoin pour construire .NET 4 applications sur votre serveur CI. Cela va prendre soin de toutes les dépendances que vous avez besoin dans le GAC, et vous empêcher d'avoir à copier manuellement un tas de fichiers à partir de votre poste de travail de développement.

http://msdn.microsoft.com/en-us/windows /bb980924.aspx

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top