2015-06-25 16 views
9

Używam PostSharp w wersji 2.1.6.4 (wypróbowałem również najnowszą wersję 2.1.7.35), a czasami brakuje pliku pdb i jest w nim plik pssym.Plik pdb zmarnia po 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> 

Pobiegłem procmon na proces kompilacji i tak dalece, jak można stwierdzić proces postsharp.srv.4.0-x86.exe porusza zarówno DLL i pliki PDB z obj\Debug folderu obj\Debug\Before-PostSharp folderu i później generuje nowy dll w obj\Debug folderu, ale nowy plik pdb to nie wygenerowany.

Dzieje się tak w przypadku niektórych moich bibliotek dll (pozornie losowych) i nie wydaje się być niezawodny, ponieważ na innym komputerze wszystkie pliki pdb są generowane poprawnie.

Odpowiedz

18

PostSharp 2.1.x nie obsługuje Visual Studio 2015 (.NET4.6/Roslyn).

Format PDB nieco się zmienił w .NET 4.6. Spodziewam się, że wystąpi wyjątek w PostSharp podczas przetwarzania końcowego PDB, który jest powodem, dla którego PDB nie jest kopiowany do folderu wyjściowego. Jeśli korzystasz z VS2015, mogą wystąpić tego rodzaju problemy.

Rozwiązaniem jest albo nie używać .NET4.6/Roslyn z PostSharp 2.x, ani uaktualnić do wersji PostSharp 3.1.

+2

Nadal miałem ten problem z PostSharp 3.1; zaktualizowano do najnowszej wersji (która jest 4.1.x), która naprawiła problem. W moim przypadku jest to rozwiązanie .NET 4.5, które przeszedłem do Visual Studio 2015 ... Nie korzystam jeszcze z .NET 4.6. – Matze

+0

Mam postsharp 4.2 i nadal otrzymuję to. Nieznany rodzaj niestandardowych elementów metadanych: 6. – klaudyuxxx

+0

Którą wersję 4.2 używasz? Czy pakiet PostSharp nuget i narzędzia PostSharp dla Visual Studio są dostępne w wersji 4.2? –

5

Miałem ten sam problem i uaktualniłem go z PostSharp 3.1.46 do 3.1.67 i to rozwiązało moją sprawę. Dostaję plik .pdb i mogę ponownie debugować.

1

Ten sam problem, to samo obejście. Uaktualniono z wersji 3.1.51 na 3.1.69 i wygenerowano ponownie pdb.