Deploying the Event Handler
Please see details on MSDN:
http://msdn.microsoft.com/en-us/library/office/gg615466.aspx
After the Procedure 2a/2b (To register an event handler in the global assembly cache or To register an event handler by using XCopy deployment), We can register the event handler associate using PWA or an administrator can use the Powershell script.

Registering the Event Handler Association 

We can manually associate the Customized event handler using PWA. 
On the New Event Handler page in PWA > Server settings> Server side event handlers, 
type the following values for the fields:

  1. Name:  The friendly name for the event handler.
  2. Description:  An optional description of the event handler.
  3. Assembly Name:  The full name of the assembly from the text file that you prepared in Procedure 2a, for example:

4.  TestCreatingProject, Version=1.0.0.0, Culture=neutral, PublicKeyToken=92978aaaab03ff98

  1. Class Name:  The fully qualified name of the class in the assembly that implements the event handler, for example, “Microsoft.SDK.Project.Samples.TestCreatingProject.CheckProjectDepartment”.
  2. Order:  If there are multiple event handlers associated with one event, the order number determines the sequence in which the event handlers are invoked. The value can be from 1 to 999

 By Using Powershell:

This Powershell script registers the custom event handler (On Project published) association for a specific project server event.
Read about Event Web service:
http://msdn.microsoft.com/en-us/library/gg208945

http://msdn.microsoft.com/en-us/library/websvcevents.events.readeventhandlerassociations_di_pj14mref.aspx 

http://msdn.microsoft.com/en-us/library/websvcevents.pseventid_di_pj14mref
 

ProjectPublished Value=53. Project post-event

Here is the code:

PowerShell
Edit|Remove
Write-Host "Loading SharePoint PowerShell Snapin" 
Add-PSSnapin Microsoft.sharepoint.powershell 
$pwaServiceAssembly = New-WebServiceProxy -uri "http://Amit-Test-VM/pwa/_vti_bin/PSI/Events.asmx?wsdl" -useDefaultCredential  
 
#Service URL for Server Side Event Handlers 
 
Write-Host "Creating server side event handlers" 
 
        $eventHandlerDataSet= $pwaServiceAssembly.ReadEventHandlerAssociations() 
 
        $eventHandlerRow = $eventHandlerDataSet.EventHandlers.NewEventHandlersRow()     
 
        $eventHandlerRow.AssemblyName = "TestProjectEventHandler, Version=1.0.0.0, Culture=neutral, PublicKeyToken=bafbf7bc458f0011" 
        $eventHandlerRow.ClassName = "TestProjectEventHandler.ProjectFieldsAudit" 
        $eventHandlerRow.Description = "Test Project Published Event Handler"         
        $eventHandlerRow.EventId = 53 
        $eventHandlerRow.EventHandlerUid = [Guid]::NewGuid() 
        $eventHandlerRow.Name = "TestProjectEventHandler" 
        $eventHandlerRow.Order = 1 
 
        #Populating the Dataset 
        $eventHandlerDataSet.EventHandlers.Rows.Add($eventHandlerRow) 
     
    #Calling service to create event handlers 
    $pwaServiceAssembly.CreateEventHandlerAssociations($eventHandlerDataSet) 
 
 
 
Write-Host "Unloading SharePoint PowerShell Snapin" 
Remove-PSSnapin Microsoft.sharepoint.powershell 
 
Write-Host "Restarting Microsoft Project Server services" 
Restart-Service -Name ProjectEventService14 
Restart-Service -Name ProjectQueueService14