Running pdb2mdb.exe as a MonoDevelop


I feel quite dumb, but I can’t find a way to run pdb2mbd.exe as an “After Build” Custom Command from MonoDevelop.

I want MonoDevelop to create an mdb file for my dll (that already outputs a pdb), as soon as it ends compilation, but I don’t know what to write in the “Command” and “Working Directory” fields of the Custom Command panel for my project.

Any help would be immensely appreciated.


Moved to Visual Studio where I solved this issue, but in the meantime I discovered that pdb2mdb fails if the dll contains any coroutine. Sigh.

You can check this link out. I think it will help you get started.

Here’s how I integrated pdb2mdb into my Visual Studio build process. I made these changes by hand-editing the .csproj file.

First, I create a property (in the first PropertyGroup) for the location of the Unity installation:

<UnityInstallFolder>$([System.IO.Path]::GetDirectoryName($(registry:HKEY_CURRENT_USER\Software\Unity Technologies\Unity Editor 3.x\Location)))</UnityInstallFolder>

Then I added a post-build step to call pdb2mdb on my output DLL:

<PostBuildEvent>$(UnityInstallFolder)\Data\Mono\lib\mono\2.0\pdb2mdb.exe $(TargetPath)</PostBuildEvent>

Unfortunately I don’t have a solution to the IEnumerator problem. This post mentions implementing a new version of pdb2mdb based on the Mono.Cecil library.