Wednesday, February 22, 2012

SharePoint 2010 - MSOCAF Prep Script

When operating on a hosted or Office 365 Dedicated (including BPOS-D) environment, you will need to utilize MSOCAF to both validate your code, do a test deployment, and submit to Microsoft.

With the following cmdlet, you’ll need to set two environmental variables, CAF_ANALYSIS_ROOT_PATH, CAF_SHORTCUT_PATH. Basically, this MSOCAF cmdlet, allows you to simplify the process of testing individual solutions during your development cycle. This cmdlet will copy the files to the necessary location and launch MSOCAF directly.
@echo off
SET WSP=SolutionName.wsp
SET PDB=SolutionName.pdb
SET CAF_ANALYSIS_ROOT_PATH=%CAF_ANALYSIS_ROOT_PATH%
SET CAF_SHORTCUT_PATH=%CAF_SHORTCUT_PATH%
@echo on
@echo.
cls
@echo.
@echo  Clearing Solutions artifacts folder…
rmdir /s /q %CAF_ANALYSIS_ROOT_PATH%”\Caf Reports”
rmdir /s /q %CAF_ANALYSIS_ROOT_PATH%”\Solutions artifacts\”
md %CAF_ANALYSIS_ROOT_PATH%”\Solutions artifacts\”
REM del /q %CAF_ANALYSIS_ROOT_PATH%”\Solutions artifacts\*.*”
@echo.
@echo  Copying files…
copy /y DeploymentFiles\%WSP% %CAF_ANALYSIS_ROOT_PATH%\”Solutions artifacts”
copy /y bin\Debug\%PDB% %CAF_ANALYSIS_ROOT_PATH%\”Solutions artifacts”
@echo.
@echo  Launching CAF…
%CAF_SHORTCUT_PATH%
@echo.
@echo  Done
pause

SharePoint 2010 - Deploy Script

This script allows you to to deploy to your on-premise SharePoint farm or local VM with relative ease. Unless, you want to use powershell.
@echo off
SET WSP=SolutionName.wsp
SET URL=http://SharePointServer
@set PATH=C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\14\BIN;%PATH%
@echo on
@echo.
cls
@echo.
@echo  Begin deploying %WSP%
@echo.
@echo  display solution
stsadm -o displaysolution -name %WSP%
@echo  schedule the retraction of the solution
stsadm -o retractsolution -name %WSP% -immediate -url %URL%
@echo  execute the retraction timer job immediately
stsadm -o execadmsvcjobs
@echo  delete the solution from the solution store
stsadm -o deletesolution -name %WSP%
@echo  add the solution to the solution store
stsadm -o addsolution -filename DeploymentFiles\%WSP%
@echo  schedule the deployment of the solution
stsadm -o deploysolution -name %WSP% -immediate -allowgacdeployment -force -url %URL%
@echo  execute the deployment timer job immediatelystsadm -o execadmsvcjobs
@echo  display solutionstsadm -o displaysolution -name %WSP%
@echo.
@echo  End deploying %WSP%
pause

Tuesday, February 21, 2012

SharePoint 2010 / MSOCAF - Call to Microsoft.SharePoint.SPItemEventProperties.OpenWeb() on Sharepoint 2010. Use Microsoft.SharePoint.SPItemEventProperties.get_Web Property instead.

If you are using the following code:
SPWeb web = properties.OpenWeb();
and are getting the following error:

Call to Microsoft.SharePoint.SPItemEventProperties.OpenWeb() on Sharepoint 2010.  Use Microsoft.SharePoint.SPItemEventProperties.get_Web Property instead.

You will need to update the code to the following, and it should remedy the error:
SPWeb web = properties.Web;

Saturday, February 18, 2012

SharePoint 2010 / MSOCAF - Disposable type not disposed Microsoft.SharePoint.SPWeb

If you ever get the following warning through the MSOCAF Wizard,

Disposable type not disposed Microsoft.SharePoint.SPWeb

modify the the following contents:
using (SPSite _SPSite = properties.Feature.Parent as SPSite)
{
     using (SPWeb _SPWeb = _SPSite.RootWeb)
     {
          ...
     }
}
to the following:
using (SPSite _SPSite = properties.Feature.Parent as SPSite)
{
     SPWeb _SPWeb = _SPSite.RootWeb;
     ...
}
as no explicit rootweb dispose is required. Alternatively, you could also do,
SPWeb _SPWeb = SPContext.Current.Site.RootWeb;