tutorials.de Buch-Aktion 05/2012
ERLEDIGT
NEIN
ANTWORTEN
5
ZUGRIFFE
3536
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Avatar von SixDark
    SixDark SixDark ist offline Mitglied Brokat
    Registriert seit
    Nov 2002
    Ort
    British Virgin Islands
    Beiträge
    424
    Hi @all!

    Ich habe ein Problem mit NAnt. Und zwar versuche ich seit Tagen meine Solution zu builden. Leider funktioniert ja NAnt nicht mit 2005er Solution-Files. Also habe ich es so geschrieben, dass die CS-Files einzeln gebuildet werden. Ein Hauptfile, welches die 4 Build-Files (es hat 4 Projekte in einer Solution) für die Projekte der Reihe nach aufruft. Am Ende erscheint auch das ersehnte "BUILD SUCCEEDED", aber weit gefehlt, denn wenn ich mein Windows-Test-Programm aufrufe, dann bekomme ich einen Fehler (nur zur Info: die Anwendung besteht aus einem Interface, einer Implementation dazu, einem Windows-Dienst und einer WinForms-Testanwendung). Wenn ich das Ganze mit dem Studio builde, dann funktioniert es wunderbar. Wer kann mir sagen, was ich da falsch mache. Hier mal die Build-Files:

    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    
    <project name="ServerFunctions" default="build" basedir=".">
      <description>ServerFunctions.</description>
      <property name="debug" value="true" overwrite="false" />
      <target name="clean" description="remove all generated files">
        <delete file="bin/Debug/*.dll" failonerror="false" />
        <delete file="bin/Debug/*.pdb" failonerror="false" />
      </target>
     
      <vssget
            username="Six Dark"
            password=""
            localpath="F:\Projekte\VisualC#\2005\ShiftData.ResourceChecker.Service\ServerFunctions"
            recursive="true"
            replace="true"
            writable="true"
            dbpath="F:\VSS_Safe\srcsafe.ini"
        path="$/ServerFunctions"
        />
     
      <target name="build" description="compiles the source code">
        <csc target="library" output="bin/Debug/ServerFunctions.dll" debug="${debug}">
          <sources>
            <include name="ServerFunctions.cs" />
            <include name="../ShiftData.ResourceChecker.Interfaces/IServerFunctions.cs" />
          </sources>
          <references>
            <include name="System.dll" />
            <include name="System.Data.dll" />
            <include name="System.Management.dll" />
            <include name="System.Runtime.Remoting.dll" />
            <include name="System.Xml.dll" />
            <include name="ShiftData.ResourceChecker.Interfaces.dll" />
          </references>
        </csc>
     
        <copy
        file="F:/Projekte/VisualC#/2005/ShiftData.ResourceChecker.Service/ServerFunctions/bin/Debug/ServerFunctions.dll"
        todir="F:/Projekte/VisualC#/2005/ShiftData.ResourceChecker.Service/ShiftData.ResourceChecker.Service.Test/bin/Debug/"
        verbose="true"
        overwrite="true"
      />
     
        <copy
          file="F:/Projekte/VisualC#/2005/ShiftData.ResourceChecker.Service/ServerFunctions/bin/Debug/ServerFunctions.pdb"
          todir="F:/Projekte/VisualC#/2005/ShiftData.ResourceChecker.Service/ShiftData.ResourceChecker.Service.Test/bin/Debug/"
          failonerror="false"
          verbose="true"
          overwrite="true"
      />
     
      </target>
    </project>


    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    
    <project name="IServerFunctions" default="build" basedir=".">
            <description>IServerFunctions.</description>
            <property name="debug" value="true" overwrite="false" />
            
            <target name="clean" description="remove all generated files">
                <delete file="bin/Debug/*.dll" failonerror="false" />
                <delete file="bin/Debug/*.pdb" failonerror="false" />
            </target>
     
            <vssget
              username="Six Dark"
              password=""
              localpath="F:/Projekte/VisualC#/2005/ShiftData.ResourceChecker.Service/ShiftData.ResourceChecker.Interfaces"
              recursive="true"
              replace="true"
              writable="true"
              dbpath="F:\VSS_Safe\srcsafe.ini"
              path="$/ShiftData.ResourceChecker.Interfaces"
              />
     
     
      <target name="build" description="compiles the source code">
        <csc target="library" output="bin/Debug/ShiftData.ResourceChecker.Interfaces.dll" debug="${debug}">
          <sources>
            <include name="**/*.cs" />
          </sources>
          <references>
            <include name="System.dll" />
            <include name="System.Data.dll" />
            <include name="System.Xml.dll" />
          </references>
        </csc>
     
     
        <copy
          file="F:/Projekte/VisualC#/2005/ShiftData.ResourceChecker.Service/ShiftData.ResourceChecker.Interfaces/bin/Debug/ShiftData.ResourceChecker.Interfaces.dll"
          todir="F:/Projekte/VisualC#/2005/ShiftData.ResourceChecker.Service/ServerFunctions/bin/Debug/"
          verbose="true"
          overwrite="true"
      />
     
        <copy
          file="F:/Projekte/VisualC#/2005/ShiftData.ResourceChecker.Service/ShiftData.ResourceChecker.Interfaces/bin/Debug/ShiftData.ResourceChecker.Interfaces.pdb"
          todir="F:/Projekte/VisualC#/2005/ShiftData.ResourceChecker.Service/ServerFunctions/bin/Debug/"
          failonerror="false"
          verbose="true"
          overwrite="true"
      />
     
     
        <copy
          file="F:/Projekte/VisualC#/2005/ShiftData.ResourceChecker.Service/ShiftData.ResourceChecker.Interfaces/bin/Debug/ShiftData.ResourceChecker.Interfaces.dll"
          todir="F:/Projekte/VisualC#/2005/ShiftData.ResourceChecker.Service/ShiftData.ResourceChecker.Service/bin/Debug/"
          verbose="true"
          overwrite="true"
      />
     
        <copy
          file="F:/Projekte/VisualC#/2005/ShiftData.ResourceChecker.Service/ShiftData.ResourceChecker.Interfaces/bin/Debug/ShiftData.ResourceChecker.Interfaces.pdb"
          todir="F:/Projekte/VisualC#/2005/ShiftData.ResourceChecker.Service/ShiftData.ResourceChecker.Service/bin/Debug/"
          failonerror="false"
          verbose="true"
          overwrite="true"
      />
     
     
      <copy
          file="F:/Projekte/VisualC#/2005/ShiftData.ResourceChecker.Service/ShiftData.ResourceChecker.Interfaces/bin/Debug/ShiftData.ResourceChecker.Interfaces.dll"
          todir="F:/Projekte/VisualC#/2005/ShiftData.ResourceChecker.Service/ShiftData.ResourceChecker.Service.Test/bin/Debug/"
          verbose="true"
          overwrite="true"
      />
     
        <copy
          file="F:/Projekte/VisualC#/2005/ShiftData.ResourceChecker.Service/ShiftData.ResourceChecker.Interfaces/bin/Debug/ShiftData.ResourceChecker.Interfaces.pdb"
          todir="F:/Projekte/VisualC#/2005/ShiftData.ResourceChecker.Service/ShiftData.ResourceChecker.Service.Test/bin/Debug/"
          failonerror="false"
          verbose="true"
          overwrite="true"
      />
      </target>
    </project>


    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    
    <project name="ShiftDataResourceChecker.Service.Test" default="build" basedir=".">
        <property name="basename" value="ShiftData.ResourceChecker.Service" />
        <property name="debug" value="true" />
        <property name="build1.dir" value ="bin" />
        <property name="build.dir" value="bin/Debug" />
     
        <target name="clean" description="cleans build directory">
              <delete dir="${build1.dir}" verbose="true" if="${directory::exists(build1.dir)}" />
            <delete dir="${build.dir}" verbose="true" if="${directory::exists(build.dir)}" />
        </target>
     
        <target name="debug" depends="clean">
            <property name="debug" value="true" />
        </target>
     
        <target name="release" depends="clean">
            <property name="debug" value="false" />
        </target>
     
        <target name="build">
            <mkdir dir="${build.dir}"/>
            <csc target="exe" output="${build.dir}/${basename}.exe" debug="${debug}">
                <sources>
                    <include name="**/*.cs" />
                        <include name="../ShiftData.ResourceChecker.Interfaces/IServerFunctions.cs" />
                        <include name="../ServerFunctions/ServerFunctions.cs" />
                </sources>
              <references>
                <include name="System.dll" />
                <include name="System.Data.dll" />
                <include name="System.Configuration.Install.dll" />
                <include name="System.Runtime.Remoting.dll" />
                <include name="System.Xml.dll" />
                <include name="System.ServiceProcess.dll" />
                <include name="ShiftData.ResourceChecker.Interfaces.dll" />
                <include name="ServerFunctions.dll" />
              </references>
            </csc>
        </target>
    </project>


    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    
    <project name="ShiftDataResourceChecker.Service.Test" default="build">
        <property name="basename" value="ShiftData.ResourceChecker.Service.Test"/>
        <property name="debug" value="true"/>
        <property name="build.dir" value="bin/Debug"/>
     
        <target name="clean" description="cleans build directory">
            <delete dir="${build.dir}" verbose="true" if="${directory::exists(build.dir)}" />
        </target>
     
        <target name="debug" depends="clean">
            <property name="debug" value="true" />
        </target>
     
        <target name="release" depends="clean">
            <property name="debug" value="false" />
        </target>
     
        <target name="build">
            <mkdir dir="${build.dir}"/>
            <csc target="winexe" output="${build.dir}/${basename}.exe" debug="${debug}" 
                    main="ShiftData.ResourceChecker.Service.Test.Program">
                <sources>
                    <include name="**/*.cs" />
                    <include name="../ShiftData.ResourceChecker.Interfaces/IServerFunctions.cs" />
                </sources>
                <references>
                    <include name="System.dll" />
                        <include name="System.Deployment.dll" />
                    <include name="System.Data.dll" />
                    <include name="System.Drawing.dll" />
                    <include name="System.Windows.Forms.dll" />
                        <include name="System.Runtime.Remoting.dll" />
                    <include name="System.Xml.dll" />
                    <include name="ShiftData.ResourceChecker.Interfaces.dll" />
                </references>
            </csc>
        </target>
    </project>

    Ich weiß, das ist etwas viel auf einmal, aber ich hab schon alles ausprobiert - ich weiß nicht mehr weiter...
    Auf Arbeit habe ich mittlerweile 6 komplette Solutions (teilweise mit mehr als 10 Projekten drin), die laufen über CruiseControl und NAnt super, aber bei meiner hier zu Hause will das nicht klappen...

    Ich hoffe Ihr könnt mir helfen.
    Vielen vielen Dank schon mal...

    MfG
    ..::SD::..
     

  2. #2
    Avatar von Norbert Eder
    Norbert Eder Norbert Eder ist offline Mitglied Diamant
    Registriert seit
    Feb 2004
    Ort
    Österreich / Graz
    Beiträge
    5.137
    Blog-Einträge
    51
    Ich hab mir deine Files jetzt nicht angesehen, da ich leider dafür im Moment keine Zeit hab (vielleicht etwas später), aber dafür möchte ich etwas in den Raum werfen:

    Was spricht dagegen die Builds mit MSBUILD zu machen? Wenn es ohnehin 2005er Solutions sind und bekanntlich NAnt diese nicht unterstützt und VS2005 selbst MSBuild dafür verwendet, würde dies naheliegen. Und im Endeffekt kannst das gleiche abbilden wie unter NAnt auch. Und das funktioniert auch mit CruiseControl.

    Just an idea.
     

  3. #3
    Avatar von SixDark
    SixDark SixDark ist offline Mitglied Brokat
    Registriert seit
    Nov 2002
    Ort
    British Virgin Islands
    Beiträge
    424
    Hallo Norbert,

    ich werde mir (wie schon einmal) Deinen Rat zu Herzen nehmen und die Sachen mal mit MSBuild ausprobieren. Ich hab grad auf Arbeit überlegt, ob ich es auch mit devenv machen könnte, aber erst probiere ich MSBuild.

    Ich werde berichten.

    Viele Grüsse
    ..::SD::..
     

  4. #4
    Avatar von Norbert Eder
    Norbert Eder Norbert Eder ist offline Mitglied Diamant
    Registriert seit
    Feb 2004
    Ort
    Österreich / Graz
    Beiträge
    5.137
    Blog-Einträge
    51
    Ja, könntest du auch mit devenv machen (hat entsprechende CommandLine-Parameter, mit denen das funktioniert). Allerdings muss eben Visual Studio installiert sein. MSBuild wäre die unabhängigere Variante.

    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    
    Command line builds:
    devenv solutionfile.sln  /build solutionconfig [ /project projectnameorfile [ /p
    rojectconfig name ] ]
     
    Available command line switches:
     
    /build          build the specified solution configuration
    /project        specifies the project to build instead of solution
                    must specify /build to use /project
    /projectconfig  specifies project configuration to build
                    must specify /project to use /projectconfig
    /out            write build output to specified file
    /rebuild        like /build but forces a clean first
    /clean          clean up build outputs
    /deploy         build the specified solution configuration and then deploy it
    /run            run the specified solution configuration
    /runexit        run the specified solution configuration and then terminate
    /command        executes the specified internal command line after startup
    /mditabs        use tabbed documents interface
    /mdi            use MDI interface
    /fn             use specified font name
    /fs             use specified font size
    /LCID           use specified language ID
    /noVSIP         disables VSIP developers license key for VSIP testing
    /safemode       only default environment and services load for stability
    /resetskippkgs  allow VsPackages once flagged for loading failures to
                    load again
    /migratesettings migrate some user settings from another version
     
    Product-specific switches:
     
    /debugexe       Open the specified executable to be debugged. The
                    remainder of the command line is passed to this
                    executable as its arguments.
    /useenv         Use PATH, INCLUDE, LIBPATH, and LIB environment variables
                    instead of IDE paths for VC++ builds.
     
    To attach the debugger from the command line, use:
            vs7jit.exe -p <pid>
     

  5. #5
    Avatar von SixDark
    SixDark SixDark ist offline Mitglied Brokat
    Registriert seit
    Nov 2002
    Ort
    British Virgin Islands
    Beiträge
    424
    Hallo Norbert,

    Endlich bin ich dazu gekommen das Ganze mal umzubauen...
    Mit MSBuild funktioniert es super - also bleibt devenv in der Ecke .

    Aber ich muss sagen, die Sache mit NAnt, CruiseControl.NET, MSBuild, NDoc etc. ist heftiger als ich dachte. Eh man CC.NET dazu bringt bestimmte Sachen zu machen, brauchts ewig. Und wenn man Unit-Tests einbinden möchte, die eine Config-Datei benötigen, wirds erst recht haarig. Aber auch das krieg ich irgendwann noch geregelt...

    Viele Grüsse und schönes Wochenende!
    ..::SD::..
     

  6. #6
    tomthekid tomthekid ist offline Grünschnabel
    Registriert seit
    Jun 2003
    Beiträge
    1
    Hallo!

    Hat hier schonmal jemand MSBuild unter CruiseControl zum Laufen bekommen.
    Ich versuch' es schon seit einigen Tagen, Versionsverwaltung hab' ich zum Laufen bekommen. Aber beim MsBuild-Task kriege aber immer eine Fehlermeldung:

    Code :
    1
    2
    3
    4
    5
    
    Überprüfen Sie Folgendes:
    1.) Der angegebene Protokollierungsname entspricht dem Namen der Protokollierungsklasse.
    2.) Die Protokollierungsklasse ist "public" und implementiert die Microsoft.Build.Framework.ILogger-Schnittstelle.
    3.) Der Pfad der Protokollierungsassembly ist richtig, oder die Protokollierung kann nur mit dem angegebenen Assemblynamen geladen werden.
    Schalter: ThoughtWorks.CruiseControl.MsBuild.XmlLogger,C:\Programme\CruiseControl.NET\server\ThoughtWorks.CruiseControl.Core.dll;C:\Programme\CruiseControl.NET\server\Dienstplaner\Artifacts\msbuild-results.xml

    Ich kann mit der Fehlermeldung leider überhaupt nichts anfangen.
    In der letzten .dotnet-Ausgabe war auch ein kurzer Bericht darüber, die haben aber leider auch nur oberflächlich beschrieben, was alles möglich ist.

    Ich hoffe, mir kann jemand helfen.
     

Ähnliche Themen

  1. Ant-Build-Skript
    Von lona_m im Forum Java
    Antworten: 4
    Letzter Beitrag: 15.01.11, 18:30
  2. Could not write build.xml
    Von KlaDi im Forum Java
    Antworten: 4
    Letzter Beitrag: 06.03.07, 10:01
  3. Antworten: 1
    Letzter Beitrag: 15.01.07, 15:58
  4. build.xml erkennt Java3D nicht
    Von MrOrientierungslos im Forum Java
    Antworten: 1
    Letzter Beitrag: 23.05.06, 10:51
  5. /lib/modules/2.4./build , for what
    Von Frerk im Forum Linux & Unix
    Antworten: 1
    Letzter Beitrag: 15.01.04, 11:19