SharpDevelop4.xのProjectContentRegistryクラスのバグのようです。GetProjectContentForReference()メソッドをデバッグすると、間違ったGACフォルダーを検索していることがわかります。フォルダを探しています
System.Core\4.0.0.0__b77a5c561934e089\System.Core.dll
フォルダを検索する必要がある場合
System.Core\v4.0_4.0.0.0__b77a5c561934e089\System.Core.dll
SharpDevelopは現在MSBuildを使用してアセンブリ参照の場所を特定しているため、このバグは認識されていないと思います。たとえば、System.Coreの場合、プロジェクトのターゲットフレームワークに基づいて、参照アセンブリフォルダーでアセンブリが検索されます。
C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.0\Profile\Client\System.Core.dll
代わりにできることは、ICSharpCode.SharpDevelop.Domアセンブリの一部であるGacInteropクラスを使用してファイル名を見つけることです。以下のコードは、null以外のプロジェクトコンテンツオブジェクトを返す必要があります。
var reference = new DomAssemblyName("System.Core");
reference = GacInterop.FindBestMatchingAssemblyName(reference);
string fileName = GacInterop.FindAssemblyInNetGac(reference);
var registry = new ProjectContentRegistry();
IProjectContent pc = registry.GetProjectContentForReference("System.Core", fileName);