2015-06-25 4 views
9

Я использую PostSharp версии 2.1.6.4 (также пробовал последнюю версию 2.1.7.35), а иногда и файл pdb отсутствует, и на нем есть файл pssym.pdb file is mising after PostSharp

<?xml version="1.0" encoding="utf-8"?> 
<Symbols xmlns="http://schemas.postsharp.org/2.0/symbols"> 
    <Class Class="#1=T:[CrosscuttingLogging]CrosscuttingLogging.Attributes.LogMethodCallStatsAttribute" LimitedLicense="true" /> 
    <Class Class="#2=T:[RequestLimiter]RequestLimiter.RequestCounterAttribute" LimitedLicense="true" /> 
</Symbols> 

Я бегала ProcMon на процессе сборки и, насколько я могу сказать, процесс postsharp.srv.4.0-x86.exe двигается как DLL и PDB файлов из obj\Debug папки в obj\Debug\Before-PostSharp папку и в дальнейшем создаю новый DLL в obj\Debug папки, но новый pdb-файл: не сгенерировано.

Это происходит для некоторых моих DLL (по-видимому, случайным образом) и не кажется надежным, потому что на другой машине все файлы pdb генерируются правильно.

ответ

18

PostSharp 2.1.x не поддерживает Visual Studio 2015 (.NET4.6/Roslyn).

Формат PDB немного изменился в .NET 4.6. Я ожидал бы, что в PostSharp есть исключение во время пост-обработки PDB, из-за чего PDB не копируется в выходную папку. Если вы используете VS2015, тогда могут возникнуть такие проблемы.

Решение состоит в том, чтобы не использовать .NET4.6/Roslyn с PostSharp 2.x или обновить, по крайней мере, до PostSharp 3.1.

+2

Все еще была проблема с PostSharp 3.1; обновлен до последней версии (4.1.x), которая исправила проблему. В моем случае это решение .NET 4.5, которое я перенес в Visual Studio 2015 ... Я еще не использую .NET 4.6. – Matze

+0

У меня есть postsharp 4.2 и все еще получаю это. Неизвестный тип элементов метаданных: 6. – klaudyuxxx

+0

Какую версию 4.2 вы используете? Являются ли пакеты Postgrep nuget и PostSharp Tools для Visual Studio версии 4.2? –

5

У меня была эта же проблема, и я обновился с PostSharp 3.1.46 до 3.1.67, и это решило мой случай. Я создаю файл .pdb, и я снова могу отлаживать его.

1

Такая же проблема, такой же обходной путь. Обновлено с 3.1.51 до 3.1.69 и pdb сгенерировано снова.