Out of Memory when compiling

Using both the 4.1 and 4.2 framework we find MetaDataProcessor.exe throws an error " Exceeded maximum size of string table: 32806".

We have moved code out of the library that fails to compile and yet that string table size number still hovers around the 32700 mark. What is the string table used for?

If it is string literals (of which we have extremely few) would it help to place them in resource files?

Or does this error relate to the size of the code itself? Why does moving classes to another library make little difference?

This issue has been haunting some people here on the forum. Search the forum you might find what other people have found about it.