2009-08-13 7 views
2

Auf meiner Entwicklung Maschine installierte ich VSeWSS 1.3 und konfigurierte die lokale IIS 6, so dass ich mein Sharepoint-Projekt bauen und die erzeugen WSP Datei auf dem lokalen bereitstellen Maschine. Die WSP-Datei wird vom Packaging-Schritt generiert, den ich erfolgreich auf anderen Computern installieren kann.WSP-Datei auf der Build-Machine Building

Jetzt muss ich migrieren mein Projekt auf unsere Build-Maschine, die derzeit nicht SharePoint installiert hat und nicht für VSeWSS (kein VSeWSS Web-Service-Endpunkt) konfiguriert ist. Gibt es eine Möglichkeit, das Erstellen der WSP-Datei zu automatisieren, ohne IIS auf dem Erstellungscomputer für die Verwendung mit SharePoint und VSeWSS konfigurieren zu müssen?

Einige der Bücher beschreiben den manuellen Schritt von MakeCab.exe verwenden und eine DDF Datei definieren, aber ich sehe keine DDF-Datei von VSeWSS erzeugt (es wird vielleicht in einem TEMP erzeugt Ordner, mit dem ich meinen automatisierten Build-Prozess konfigurieren könnte?).

+0

Es ist wie der Inhalt des PKG Ordner aussieht, die von der Build-Schritt erzeugt wird, könnte nützlich sein, wenn eine DDF-Datei von Hand zu bauen. –

Antwort

5

Ich habe gerade das gleiche Problem konfrontiert. Ich entschied mich für ein anderes Werkzeug zur Entwicklung der gesamten Lösung: Ich fand WSPBuilder viel sauberer und weniger aufdringlich. Es kann auch von der Befehlszeile aus verwendet werden, was großartig für Build-Dateien ist.

Ich habe einige Nant-Skripte geändert, die von Bil Simser erstellt wurden, um das Projekt zu kompilieren und bereitzustellen und den Code von VSeWSS nach WSPBuilder zu verschieben. Es funktioniert wie ein Zauber entweder auf meiner Maschine oder auf der Baumaschine.

Sie können WSPBuilder unter http://www.Codeplex.com finden, und diese Ziele benötigen nantContrib (unter www.tigris.org), um zu funktionieren.

Hier sind einige der Ziele Ich verwende:

<target name="build" depends="compile"> 
    <copy todir="${build.dir}\12\"> 
    <fileset basedir="${sharepoint.dir}\12"> 
     <include name="**/*"/> 
    </fileset> 
    </copy> 
    <copy 
    file="${sharepoint.dir}\solutionid.txt" 
    tofile="${build.dir}\solutionid.txt" 
    /> 
    <call target="buildsolutionfile" /> 
</target> 



<target name="buildsolutionfile"> 
    <exec program="${wspbuilder.exe}" workingdir="${build.dir}"> 

     <arg value="-BuildDDF"/> 
     <arg value="${debug}"/> 

     <arg value="-Cleanup"/> 
     <arg value="false"/> 

     <arg value="-FolderDestination"/> 
     <arg value="${build.dir}"/> 

     <arg value="-Outputpath"/> 
     <arg value="${build.dir}"/> 

     <arg value="-TraceLevel"/> 
     <arg value="verbose"/> 
    </exec> 
    <copy 
     file="${build.dir}\${package.file}" 
     tofile="${solution.dir}\${package.file}"/> 
    </target> 



<target name="addsolution"> 
    <exec program="${stsadm.exe}" verbose="${verbose}"> 
     <arg value="-o" /> 
     <arg value="addsolution" /> 
     <arg value="-filename" /> 
     <arg value="${solution.dir}\${package.file}" /> 
    </exec> 
    <call target="spwait" /> 
    </target> 

    <target name="spwait" description="Waits for the timer job to complete."> 
    <exec program="${stsadm.exe}" verbose="${verbose}"> 
     <arg value="-o" /> 
     <arg value="execadmsvcjobs" /> 
    </exec> 
    </target> 
    <target name="app.pool.reset" description="Resets Sharepoint's application pool."> 
    <iisapppool action="Restart" pool="${apppool}" server="${server}" /> 
    </target> 
    <target name="deploysolution" depends="addsolution"> 
    <exec program="${stsadm.exe}" workingdir="${build.dir}" verbose="${verbose}"> 
     <arg value="-o" /> 
     <arg value="deploysolution" /> 
     <arg value="-name" /> 
     <arg value="${package.file}" /> 
     <arg value="-immediate" /> 
     <arg value="-allowgacdeployment" /> 
     <arg value="-allcontenturls" /> 
     <arg value="-force" /> 
    </exec> 
    <call target="spwait" /> 
    <call target="app.pool.reset" /> 

    </target> 
+2

WSP Builder ist schnell, sauber und Rocks – Kusek

+1

+1 großes Beispiel für eine Zieldatei! – Colin