SPWebCast 009 - SharePoint 2007 Development with Continuous Integration (41 mins)

In this web cast @jthake demonstrates how to set up a WSPBuilder project in Visual Studio 2008 and leverage Team Foundation 2008 focusing on Team Build. It shows automated builds integrating stamping the build number into the assemblies, validating the assemblies with SPDisposeCheck and building the WSP file with WSPBuilder.

NOTE: I will be releasing the SPDisposeCheckTask shortly.

Click here to view web cast on screen
Click here to download it to watch on iPod
or add the SharePointDevWiki.com feed to iTunes

People in Podcast

Jeremy Thake

jthake at made4the dot net
IM: jthakeuk@msn.com
Website: http://wss.made4the.net
Position: Independent Consultant
Location: Perth, Western Australia

Links

Enter labels to add to this page:
Please wait 
Looking for a label? Just start typing.
  1. May 18

    Nicholas Bérubé says:

    Thanks you for the video, I've been looking for this tutorial for a wh...

    Thanks you for the video, I've been looking for this tutorial for a while. I only have one issue and i don't know if someone can answer me, I would like to know what is "SPDevWiki.TeamFoundation.SPDisposeCheck.dll" and where or how you got it.

    1. May 19

      Jeremy Thake says:

      On actual fact, I have dnoe an even more recent video where I use a CodePlex pro...

      On actual fact, I have dnoe an even more recent video where I use a CodePlex project version of this dll that does the same thing, you can view it here: SPWebCast 013 - Integrate SPDisposeCheck in VS2010 in 5 mins

  2. May 21

    Nicholas Bérubé says:

    I would like to know if there's a way to create one .wsp file per project, becau...

    I would like to know if there's a way to create one .wsp file per project, because your solution is giving us one .wsp file for all project/solution in the build.

    You are doing a great job, thank you for sharing your knowledge.

    1. May 31

      Nicholas Bérubé says:

      Well I've found a solution to my problem and I can share it here so if...

      Well I've found a solution to my problem and I can share it here so if anyone else who is stuck by the same problem can see the solution.

      In the TFSBuild.proj (that I took the code from your video),
      - Add those lines under the </PropertyGroup>:

      <ItemGroup>
          <ProjectFiles Include="$(SolutionRoot)\**\*.csproj"/>
      </ItemGroup>

      This will give you all the project files in your SolutionPath.

      -Change 

      <Exec Command='"$(WSPBuilderPath)\WSPBuilder.exe" -BuildMode Release -CreateDeploymentFolder stsadm -SolutionPath "$(SolutionPath)" -BinPath "$(BinariesRoot)" -DLLReferencePath "$(DLLReferencePath)" -OutputPath "$(SolutionPath)" -WSPName $(WSPSolutionName).wsp' WorkingDirectory='$(SolutionPath)'/>
          <ItemGroup>
            <WSPSourceFiles Include="$(SolutionPath)\$(WSPSolutionName).wsp; $(SolutionPath)\bin\Deploy\$(WSPSolutionName)\*" />
          </ItemGroup>

           To

      <Exec Command='"$(WSPBuilderPath)\WSPBuilder.exe" -BuildMode Release -CreateDeploymentFolder stsadm -SolutionPath "%(ProjectFiles.RelativeDir)" -BinPath "$(BinariesRoot)" -DLLReferencePath "$(DLLReferencePath)" -OutputPath "%(ProjectFiles.RelativeDir)" -WSPName %(ProjectFiles.Filename).wsp' WorkingDirectory='$(SolutionPath)'/>
          <ItemGroup>
            <WSPSourceFiles Include="%(ProjectFiles.RelativeDir)\*.wsp; $(SolutionPath)\bin\Deploy\%(ProjectFiles.Filename)\*" />
          </ItemGroup>

      So instead of giving to WSPBuilder a constant WSPName or Path it will take those information from the <ProjectFiles> who's is like a "table of item". In MSBuild when there's more then one Item with the same name, it does multiple operation depending on the number of that item.

      EDIT: If you wish to have all the .WSP in different folders with all of the files inside the bin\deploy[ProjectName] (ex: setyp.exe.config, EULA.rtf and deploy.bat) add this xcopy under the above TextCode (Exec Command='"$(WSPBuilderPath)....).

          <Exec Command='xcopy "%(ProjectFiles.RelativeDir)\bin\Deploy" "$(DropLocation)\$(BuildNumber)\WSP\" /S /I /F  '/>

Creative Commons License
This work is licensed under a Creative Commons Attribution-Share Alike 3.0 Unported License. Hosted generously by CustomWare