You need to compile the assembly with the new method before the template can be executed because it links the compiled assambly. So it will hardly work with the same project.
If it's not in the same project, then make sure you are referencing the last build of it, may be you are accessing an out-dated local copy or an out-dated GAC copy. Of course this is not the case if you use the full path. [By the way, use $(SolutionDir), $(ProjectDir) and $(OutDir) they are very handy here, for example: <#@ assembly name="$(SolutionDir)YourProjectName\$(OutDir)\YourAssemblyName.dll" #>].
If you need to use custom clases in your T4, I recommend you to put them in a separate project, one that has no dependency on the one where you use the template. This way compiling the project will not be a problem before using it in the template.
You may be interested in some other techniques too... for example using T4 to generate a T4 file. Or using T4 to read from a file** and output it's content, perhaps modified. And of course, you can use T4 to write to files, if those files are in the project, you have a T4 with multiple outputs.
**The file may be in a another project, perhaps a dummy project with dummy build actions. Such as this:
http://www.darinhiggins.com/creating-a-dummy-build-project-in-vs2008/[
^]
How to update GAC on build:
Automatically GAC an assembly after a build and include debug info.[
^]
Check out OlegSych blog:
http://www.olegsych.com/articles/[
^]
http://www.olegsych.com/2008/02/t4-assembly-directive/[
^]
Opps, I'm giving away some of my "secrets" :P
Hope this helps you out.