I had a lot of pain with this so I hope this helps someone. You can get it from the MSDN article but there are a few points below that I think can help speed someone through this a little faster.
Don't forget to add this to your rssrvpolicy.config file:
<CodeGroup class="UnionCodeGroup"
version="1"
PermissionSetName="FullTrust"
Name="MyCodeGroup"
Description="Code group for my data processing extension">
<IMembershipCondition class="UrlMembershipCondition"
version="1"
Url="C:\pathtocustomassembly\customassembly.dll"
/>
</CodeGroup>
I forgot to do this and I was hating it for awhile.
Plus don't forget to hit both of the following folders for 2005 with your new dll:
Program Files\Microsoft Visual Studio 8\Common7\IDE\PrivateAssemblies
Program Files\Microsoft SQL Server\MSSQL.3\Reporting Services\ReportServer\bin
Plus don't use log4net with your assembly. I couldn't make it work. Maybe someone can but not me.
Plus if you mess up like I did you won't be able to delete the files until you close Visual Studio.
Plus make your methods shared or static. It's easier.
Create a deployment batch file. Something like:
@ECHO OFF
REM Name: SRSDeploy_Local.bat
REM
REM This batch files copies my custom assembly to my Reporting Services folders.
REM
REM This is the SQL Server 2005 version:
copy "C:\Projects\Common\lib\SCI.Common.SSRSUtils.dll" "C:\Program Files\Microsoft Visual Studio 8\Common7\IDE\PrivateAssemblies"
copy "C:\Projects\Common\lib\SCI.Common.SSRSUtils.dll" "C:\Program Files\Microsoft SQL Server\MSSQL.2\Reporting Services\ReportServer\bin"
Finally, build your report before previewing.
If it builds you're likely on your way.
Except...
You can't deploy it to your production report server because you'll always get the following error:
Error while loading code module
Which is what I'm working on right now.