Search code examples
sql-server-2012sharepoint-2013ssrs-2012makecab

SQL Server 2012 SP1 Reporting Services Web Parts cabinet file broken


The RSWebParts.cab file provided by Microsoft in the SQL Server 2012 SP1 Reporting Services Add-In For Sharepoint is broken. Its extracted file structure does not match its manifest or its INF file and so when you attempt to install it you received the dreaded "Failed to extract the cab file in the solution" error.

Is there a workaround to get this cabinet file working?


Solution

  • My workaround was to rebuild the cabinet file myself using the existing cabinet file and the working RSWebParts.cab file from a SSRS 2008 install.

    1. Extract the localization resources from the working RSWebParts.cab for 2008 R2 or earlier into a directory.
    2. Extract RSWebParts.cab from 2012 SP1 into the same directory and recreate folder structure per manifest.xml file.
    3. In the same directory as the files, create a Diamond Directive File (rswebparts.ddf) with the following contents:

    .OPTION EXPLICIT ; Will Generate errors for mistakes
    ;.Set CompressionType=MSZIP ;** All files are compressed to cabinet files
    .Set DiskDirectoryTemplate=CDROM;
    .Set DiskDirectory1=;
    .Set Cabinet=on
    .Set CabinetNameTemplate=RSWebParts.cab
    
    manifest.xml
    report_explorer.gif
    report_viewer.gif
    RSWebParts.dll
    RSWebParts.inf
    RSWebParts.resources.dll
    SPExplorer.dwp
    SPViewer.dwp
    
    .Set DestinationDir=de
    de\RSWebParts.resources.dll
    
    .Set DestinationDir=es
    es\RSWebParts.resources.dll
    
    .Set DestinationDir=fr
    fr\RSWebParts.resources.dll
    
    .Set DestinationDir=it
    it\RSWebParts.resources.dll
    
    .Set DestinationDir=ja
    ja\RSWebParts.resources.dll
    
    .Set DestinationDir=ko
    ko\RSWebParts.resources.dll
    
    .Set DestinationDir=pt
    pt\RSWebParts.resources.dll
    
    .Set DestinationDir=ru
    ru\RSWebParts.resources.dll
    
    .Set DestinationDir=zh-chs
    zh-chs\RSWebParts.resources.dll
    
    .Set DestinationDir=zh-cht
    zh-cht\RSWebParts.resources.dll
    

    Finally, open a Command Prompt and run makecab /f (your ddf location)

    This will create an RSWebParts.cab file in the directory that is properly structured. Copy this to your Sharepoint server and install it per the instructions on MSDN.