More work was to convert psproj files PostSharp.Toolkit.Diagnostics ver 2.1 to new PostSharp.Patterns.Diagnostics.3.0.
There was no documentation.I've only found a short notice at the bottom of
PostSharp Toolkits 2.1 need to be uninstalled using NuGet. Instead, you can install PostSharp Pattern Libraries 3 from NuGet.
Namespaces and some type names have changed.
Uninstall for 2.1 suggested to remove NLog nuget package, which we are using regardless of PostSharp.
I've run
Install-Package PostSharp.Patterns.Diagnostics
Install-Package PostSharp.Patterns.Diagnostics.NLog
The install of
PostSharp.Patterns.Diagnostics.NLog didn't like the latest version of Nlog, but Gael
fixed it recently(http://support.sharpcrafters.com/discussions/problems/1211-nlog-weaver-version-error).
The installs haven't changed the content of PSPROJ files and I
had to manually update them.
1. Deleted old references to DLL and inserted
dg:LoggingProfiles
profile element
<!--<Using File="..\..\..\..\packages\PostSharp.Toolkit.Diagnostics.NLog.2.1.1.12\tools\PostSharp.Toolkit.Diagnostics.Weaver.NLog.dll"/>
<Using File="..\..\..\..\packages\PostSharp.Toolkit.Diagnostics.2.1.1.12\tools\PostSharp.Toolkit.Diagnostics.Weaver.dll" /> -->
2. After
advise from Gael I've removed the
Task
element and change
<Data Name="XmlMulticast">
into simply
<Multicast>
.
3. I've also replaced namespace and DLL names in LogAttribute xmlns properties to be "clr-namespace:PostSharp.Patterns.Diagnostics;assembly:PostSharp.Patterns.Diagnostics"
The psproj file becomes similar to the following and seemed to work.
It was deployed to CI test environment, where we noticed delays and timeouts. I found that despite that only OnExceptionLevel and OnExceptionOptions were specified, the new LogAttribute generated verbose trace information, which caused severe performance hit.
4. I had to change LogAttribute to
LogExceptionAttribute and remove OnExceptionLevel and OnExceptionOption properties.