2010-09-17 8 views
0

J'ai un serveur de test que je voudrais utiliser pour CI. Plan consiste à configurer Hudson qui écoute le dépôt git, sur une nouvelle validation récupère les modifications, construit la solution, exécute des tests (ramasse la sortie), configure l'application web de l'environnement de test si tout est vert et shows Chuck Norris.Comment emballer une application web asp.net sans visual studio?

Je suis aux prises avec la première partie (les ports git sont fermés atm mais ce n'est pas le point de cette question) et la dernière partie. L'application elle-même est construite en utilisant .Net 4.0, Asp.Net Mvc 2 RTM et un tas d'outils tiers.

Au début - ne pouvait rien construire du tout - téléchargé kit .Net 4.0 sdk et cela a aidé. Puis - ne pouvait pas construire de projet web - juste copié C:\Program Files\MSBuild\Microsoft\VisualStudio\v10.0\ contenu du dossier de mon poste de travail dev au serveur. Ensuite, j'ai dû installer asp.net mvc2 rtm lui-même et la solution a finalement été construite avec succès.

Problème avec la dernière étape dans le script de construction albacore que j'ai pris de here.

est ici la sortie:

C: \ temp \ buildtest> râteau -f build.rb (en C:/temp/buildtest) Microsoft (R) Construire Engine Version 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 \ Domain \ bin \ Release \ Domain.dll
Infra -> C: \ temp \ buildtest \ src \ Infrastructure \ bin \ Release \ Infra.dll
Persistance -> C: \ temp \ buildtest \ src \ Persistance \ bin \ Release \ Persistence.dll
App -> C: \ temp \ buildtest \ src \ App \ bin \ Libération \ App.dll
Web -> C : \ temp \ buildtest \ src \ Web \ bin \ version \ Web.dll
UI -> C: \ temp \ buildtest \ src \ UI \ bin \ UI.dll
Unité -> C: \ temp \ buildtest \ src \ UnitTests \ bin \ Release \ Unit.dll
Intégration -> C: \ temp \ build test \ src \ Intégration \ bin \ Release \ Integration.dll
Coureur de test de console xUnit.net (32 bits .NET 4.0.30319.1)
Copyright (C) 2007-10 Microsoft Corporation.

xunit.dll: Version 1.6.1.1521
assemblage Test: C: \ temp \ buildtest \ src \ UnitTests \ bin \ Release \ src \ UnitTests \ bin \ Release \ Unit.dll

84 au total, 0 a échoué, 0 a sauté, a pris 9,560 secondes
Coureur de test xUnit.net console (32 bits .NET 4.0.30319.1)
Droit d'auteur (C) 2007-10 Microsoft Corporation.

xunit.dll: Version 1.6.1.1521
assemblage Test: C: \ temp \ buildtest \ src \ Integration \ bin \ Release \ src \ Integration \ bin \ Release \ Integration.dll

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

Exception non gérée: Système.TypeInitializationException: L'initialiseur de type fo 'Microsoft.Build.CommandLine.MSBuildApp' a lancé une exception. ---> System.IO.Fi leNotFoundException: Impossible de charger le fichier ou l'assemblage 'Microsoft.Build.Engine, Ve rsion = 3.5.0.0, Culture = neutre, PublicKeyToken = b03f5f7f11d50a3a' ou l'une de ses dépendances d . 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: exploitation forestière liant Assemblée est désactivé. Pour activer la journalisation des échecs de liaison d'assembly, définissez la valeur de registre [HKLM \ Software \ M icrosoft \ Fusion! EnableLog] (DWORD) sur 1. Remarque: Une erreur de performance est associée à l'échec de la liaison d'assemblage à . Pour désactiver cette fonctionnalité, supprimez la valeur de registre [HKLM \ Software \ Microsoft \ Fus ion! EnableLog].

--- Fin de trace de pile d'exception interne --- à Microsoft.Build.CommandLine.MSBuildApp.Main() F, [2010-09-18T00: 35: 07,728632 # 2072] FATAL -: MSBuild Échoué. Voir Build Log F ou Détail rake annulé! MSBuild a échoué. Voir Build Log For Detail C: /Ruby191/lib/ruby/gems/1.9.1/gems/albacore-0.1.5/lib/albacore/msbuild.rb: 41: dans `build_solution ' (Voir la trace complète par tâche en cours d'exécution avec --trace)

C: \ temp \ buildtest>

Voici comment mon script germon ressemble:

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 fonctionner?

Comment emballer une application web asp.net sans visual studio?

Répondre

1

Installez le SDK Windows 7 sur votre serveur CI, qui contient tout ce dont vous avez besoin pour créer des applications .NET 4 sur votre serveur CI. Cela prendra soin de toutes les dépendances dont vous avez besoin dans le GAC, et vous empêchera de devoir copier manuellement un tas de fichiers à partir de votre poste de travail de développement.

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

+0

Je l'ai installé. Bien que cela rende la construction réussie, malheureusement la cible ': _CopyWebApplication' échoue toujours. Était-ce censé fonctionner aussi? –

+0

@Amis: CopyWebApplication est une fonction Visual Studio. Vous pourriez être en mesure de le copier (cible MSBuild) à partir d'une machine de développement, mais pourquoi ne pas simplement installer VS ou WebDeveloper sur la machine? –

+0

@Henk Je pense que c'est ce que je vais faire après tout. –