Skip to content

Commit 31d19c5

Browse files
bug fixes
adds versions to assembly info fixes a bug with owned stream passed to mono cecil adds debug information
1 parent 0ff4ba3 commit 31d19c5

File tree

15 files changed

+50
-48
lines changed

15 files changed

+50
-48
lines changed

Src/BridgeVs.Build/BridgeVs.Build.csproj

+2
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,8 @@
3030
<DefineConstants>TRACE;DEPLOY</DefineConstants>
3131
<PlatformTarget>AnyCPU</PlatformTarget>
3232
<Optimize>true</Optimize>
33+
<DebugType>pdbonly</DebugType>
34+
<DebugSymbols>true</DebugSymbols>
3335
</PropertyGroup>
3436
<PropertyGroup>
3537
<SignAssembly>true</SignAssembly>

Src/BridgeVs.Build/Properties/AssemblyInfo.cs

+1-2
Original file line numberDiff line numberDiff line change
@@ -64,5 +64,4 @@
6464
[assembly: InternalsVisibleTo("BridgeVs.Build.Test, PublicKey=0024000004800000940000000602000000240000525341310004000001000100f575ceee4c0b7992660f21a6c2a09c93eac56d9dad2f20caa2d48bf5d904c9b2af5800ba01cae7b37299bff9486a8b97047959c3fbe16de730cf3397f4bafaefc745dba1ce34cedf27698f2dc96159eaa27eef4093f6c35236f30239a4841b864ea734ed3582478cc4214d76497ceb974ac920f35043de0913a149d1107bd3a1")]
6565
#endif
6666

67-
[assembly: AssemblyVersion("1.4.7.*")]
68-
[assembly: AssemblyFileVersion("1.0.0.0")]
67+
[assembly: AssemblyVersion("1.4.7.*")]

Src/BridgeVs.Build/TypeMapper/VisualizerAttributeInjector.cs

+10-9
Original file line numberDiff line numberDiff line change
@@ -25,15 +25,13 @@
2525

2626
using BridgeVs.Build.Util;
2727
using BridgeVs.Shared.Common;
28-
using BridgeVs.Shared.Logging;
2928
using Mono.Cecil;
3029
using Mono.Cecil.Pdb;
3130
using Mono.Cecil.Rocks;
3231
using System;
3332
using System.Collections.Generic;
3433
using System.IO;
3534
using System.Linq;
36-
using System.Threading;
3735
using FS = BridgeVs.Shared.FileSystem.FileSystemFactory;
3836

3937
namespace BridgeVs.Build.TypeMapper
@@ -58,7 +56,9 @@ internal class VisualizerAttributeInjector : IDisposable
5856

5957
private readonly WriterParameters _writerParameters;
6058

61-
private DefaultAssemblyResolver GetAssemblyResolver(string assemblyDirectoryPath)
59+
private readonly Stream _assemblyStream;
60+
61+
private static DefaultAssemblyResolver GetAssemblyResolver(string assemblyDirectoryPath)
6262
{
6363
DefaultAssemblyResolver assemblyResolver = new DefaultAssemblyResolver();
6464
assemblyResolver.AddSearchDirectory(Path.GetDirectoryName(assemblyDirectoryPath));
@@ -104,15 +104,14 @@ public VisualizerAttributeInjector(string targetVisualizerAssemblyPath, string t
104104
SymbolReaderProvider = createPdbInfo ? new PdbReaderProvider() : null,
105105
InMemory = true,
106106
ReadSymbols = createPdbInfo,
107-
ThrowIfSymbolsAreNotMatching = false
107+
ThrowIfSymbolsAreNotMatching = false,
108108
};
109109

110110
//using a stream is better for testing
111-
using (Stream file = FS.FileSystem.File.OpenRead(targetVisualizerAssemblyPath))
112-
{
113-
_debuggerVisualizerAssembly = AssemblyDefinition.ReadAssembly(file, readerParameters);
114-
}
111+
_assemblyStream = FS.FileSystem.File.OpenRead(targetVisualizerAssemblyPath);
115112

113+
_debuggerVisualizerAssembly = AssemblyDefinition.ReadAssembly(_assemblyStream, readerParameters);
114+
116115
InitializeDebuggerAssembly();
117116
RemapAssembly();
118117
}
@@ -249,7 +248,7 @@ public void SaveDebuggerVisualizer(string debuggerVisualizerDst, IEnumerable<str
249248
{
250249
string fileName = Path.GetFileNameWithoutExtension(debuggerVisualizerDst);
251250

252-
using (Stream file = FS.FileSystem.File.Create(debuggerVisualizerDst))
251+
using (Stream file = FS.FileSystem.File.OpenWrite(debuggerVisualizerDst))
253252
{
254253
_debuggerVisualizerAssembly.Name.Name = fileName;
255254
_debuggerVisualizerAssembly.Write(file, _writerParameters);
@@ -280,6 +279,8 @@ private static string FromCilToTypeName(string fullName)
280279

281280
public void Dispose()
282281
{
282+
_assemblyStream.Dispose();
283+
283284
_debuggerVisualizerAssembly?.Dispose();
284285
}
285286
}

Src/BridgeVs.DynamicVisualizers/BridgeVs.DynamicVisualizers.csproj

+2-1
Original file line numberDiff line numberDiff line change
@@ -39,12 +39,13 @@
3939
<WarningLevel>4</WarningLevel>
4040
</PropertyGroup>
4141
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Deploy|AnyCPU' ">
42-
<DebugType>none</DebugType>
42+
<DebugType>pdbonly</DebugType>
4343
<Optimize>true</Optimize>
4444
<OutputPath>bin\Deploy\</OutputPath>
4545
<DefineConstants>TRACE;DEPLOY</DefineConstants>
4646
<ErrorReport>prompt</ErrorReport>
4747
<WarningLevel>4</WarningLevel>
48+
<DebugSymbols>true</DebugSymbols>
4849
</PropertyGroup>
4950
<ItemGroup>
5051
<Reference Include="Microsoft.CSharp" />
Binary file not shown.

Src/BridgeVs.DynamicVisualizers/Properties/AssemblyInfo.cs

-1
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,6 @@
5858
// by using the '*' as shown below:
5959
// [assembly: AssemblyVersion("1.0.*")]
6060
[assembly: AssemblyVersion("1.4.7.*")]
61-
[assembly: AssemblyFileVersion("1.0.0.0")]
6261
#if TEST
6362
[assembly: InternalsVisibleTo("BridgeVs.DynamicVisualizers.Test, PublicKey=0024000004800000940000000602000000240000525341310004000001000100f575ceee4c0b7992660f21a6c2a09c93eac56d9dad2f20caa2d48bf5d904c9b2af5800ba01cae7b37299bff9486a8b97047959c3fbe16de730cf3397f4bafaefc745dba1ce34cedf27698f2dc96159eaa27eef4093f6c35236f30239a4841b864ea734ed3582478cc4214d76497ceb974ac920f35043de0913a149d1107bd3a1")]
6463
#endif

Src/BridgeVs.Locations/BridgeVs.Shared.csproj

+2-1
Original file line numberDiff line numberDiff line change
@@ -32,12 +32,13 @@
3232
<WarningLevel>4</WarningLevel>
3333
</PropertyGroup>
3434
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Deploy|AnyCPU' ">
35-
<DebugType>none</DebugType>
35+
<DebugType>pdbonly</DebugType>
3636
<Optimize>true</Optimize>
3737
<OutputPath>bin\Deploy\</OutputPath>
3838
<DefineConstants>TRACE;DEPLOY</DefineConstants>
3939
<ErrorReport>prompt</ErrorReport>
4040
<WarningLevel>4</WarningLevel>
41+
<DebugSymbols>true</DebugSymbols>
4142
</PropertyGroup>
4243
<PropertyGroup>
4344
<SignAssembly>true</SignAssembly>

Src/BridgeVs.Locations/Properties/AssemblyInfo.cs

-1
Original file line numberDiff line numberDiff line change
@@ -57,4 +57,3 @@
5757
// You can specify all the values or you can default the Build and Revision Numbers
5858
// by using the '*' as shown below:
5959
[assembly: AssemblyVersion("1.4.7.*")]
60-
[assembly: AssemblyFileVersion("1.0.0.0")]

Src/BridgeVs.Tests.sln

+4-4
Original file line numberDiff line numberDiff line change
@@ -330,8 +330,8 @@ Global
330330
{31FE81F8-6E49-432C-B0B2-658E76F96983}.Debug-net40|Any CPU.Build.0 = Debug-net40|Any CPU
331331
{31FE81F8-6E49-432C-B0B2-658E76F96983}.Debug-net45|Any CPU.ActiveCfg = Debug-net45|Any CPU
332332
{31FE81F8-6E49-432C-B0B2-658E76F96983}.Debug-net45|Any CPU.Build.0 = Debug-net45|Any CPU
333-
{31FE81F8-6E49-432C-B0B2-658E76F96983}.Debug-netstandard2.0|Any CPU.ActiveCfg = Debug-netstandard2.0|Any CPU
334-
{31FE81F8-6E49-432C-B0B2-658E76F96983}.Debug-netstandard2.0|Any CPU.Build.0 = Debug-netstandard2.0|Any CPU
333+
{31FE81F8-6E49-432C-B0B2-658E76F96983}.Debug-netstandard2.0|Any CPU.ActiveCfg = Debug-net45|Any CPU
334+
{31FE81F8-6E49-432C-B0B2-658E76F96983}.Debug-netstandard2.0|Any CPU.Build.0 = Debug-net45|Any CPU
335335
{31FE81F8-6E49-432C-B0B2-658E76F96983}.Deploy|Any CPU.ActiveCfg = Release-net40|Any CPU
336336
{31FE81F8-6E49-432C-B0B2-658E76F96983}.Deploy|Any CPU.Build.0 = Release-net40|Any CPU
337337
{31FE81F8-6E49-432C-B0B2-658E76F96983}.Release|Any CPU.ActiveCfg = Release|Any CPU
@@ -342,8 +342,8 @@ Global
342342
{31FE81F8-6E49-432C-B0B2-658E76F96983}.Release-net40|Any CPU.Build.0 = Release-net40|Any CPU
343343
{31FE81F8-6E49-432C-B0B2-658E76F96983}.Release-net45|Any CPU.ActiveCfg = Release-net45|Any CPU
344344
{31FE81F8-6E49-432C-B0B2-658E76F96983}.Release-net45|Any CPU.Build.0 = Release-net45|Any CPU
345-
{31FE81F8-6E49-432C-B0B2-658E76F96983}.Release-netstandard2.0|Any CPU.ActiveCfg = Release-netstandard2.0|Any CPU
346-
{31FE81F8-6E49-432C-B0B2-658E76F96983}.Release-netstandard2.0|Any CPU.Build.0 = Release-netstandard2.0|Any CPU
345+
{31FE81F8-6E49-432C-B0B2-658E76F96983}.Release-netstandard2.0|Any CPU.ActiveCfg = Release-net45|Any CPU
346+
{31FE81F8-6E49-432C-B0B2-658E76F96983}.Release-netstandard2.0|Any CPU.Build.0 = Release-net45|Any CPU
347347
{31FE81F8-6E49-432C-B0B2-658E76F96983}.Test|Any CPU.ActiveCfg = Debug-net40|Any CPU
348348
{31FE81F8-6E49-432C-B0B2-658E76F96983}.Test|Any CPU.Build.0 = Debug-net40|Any CPU
349349
EndGlobalSection

Src/BridgeVs.VsPackage.Helper/BridgeVs.VsPackage.Helper.csproj

+2-2
Original file line numberDiff line numberDiff line change
@@ -43,10 +43,10 @@
4343
<AssemblyOriginatorKeyFile>..\BridgeVs.VsPackage\Key.snk</AssemblyOriginatorKeyFile>
4444
</PropertyGroup>
4545
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Deploy|AnyCPU'">
46-
<DebugSymbols>false</DebugSymbols>
46+
<DebugSymbols>true</DebugSymbols>
4747
<OutputPath>bin\Deploy\</OutputPath>
4848
<DefineConstants>TRACE</DefineConstants>
49-
<DebugType>none</DebugType>
49+
<DebugType>pdbonly</DebugType>
5050
<PlatformTarget>AnyCPU</PlatformTarget>
5151
<ErrorReport>prompt</ErrorReport>
5252
<CodeAnalysisRuleSet>MinimumRecommendedRules.ruleset</CodeAnalysisRuleSet>

Src/BridgeVs.VsPackage.Helper/Properties/AssemblyInfo.cs

-1
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,6 @@
6060
// by using the '*' as shown below:
6161
// [assembly: AssemblyVersion("1.0.*")]
6262
[assembly: AssemblyVersion("1.4.7.*")]
63-
[assembly: AssemblyFileVersion("1.0.0.0")]
6463
#if TEST
6564
[assembly: InternalsVisibleTo("BridgeVs.VsPackage.Helper.Test, PublicKey=0024000004800000940000000602000000240000525341310004000001000100f575ceee4c0b7992660f21a6c2a09c93eac56d9dad2f20caa2d48bf5d904c9b2af5800ba01cae7b37299bff9486a8b97047959c3fbe16de730cf3397f4bafaefc745dba1ce34cedf27698f2dc96159eaa27eef4093f6c35236f30239a4841b864ea734ed3582478cc4214d76497ceb974ac920f35043de0913a149d1107bd3a1")]
6665
#endif

Src/BridgeVs.VsPackage/BridgeVs.VsPackage.csproj

+2-2
Original file line numberDiff line numberDiff line change
@@ -33,10 +33,10 @@
3333
<DeployExtension>False</DeployExtension>
3434
</PropertyGroup>
3535
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Deploy|AnyCPU'">
36-
<DebugSymbols>false</DebugSymbols>
36+
<DebugSymbols>true</DebugSymbols>
3737
<OutputPath>bin\Deploy\</OutputPath>
3838
<DefineConstants>TRACE;DEPLOY</DefineConstants>
39-
<DebugType>none</DebugType>
39+
<DebugType>pdbonly</DebugType>
4040
<PlatformTarget>AnyCPU</PlatformTarget>
4141
<ErrorReport>prompt</ErrorReport>
4242
<CodeAnalysisRuleSet>MinimumRecommendedRules.ruleset</CodeAnalysisRuleSet>

Src/BridgeVs.VsPackage/Properties/AssemblyInfo.cs

-1
Original file line numberDiff line numberDiff line change
@@ -56,6 +56,5 @@
5656
// by using the '*' as shown below:
5757

5858
[assembly: AssemblyVersion("1.4.7.*")]
59-
[assembly: AssemblyFileVersion("1.0.0.0")]
6059
[assembly: Guid("2016fd5d-79e9-4823-b927-cb796f7b411a")]
6160
[assembly: SuppressMessage("Microsoft.Design", "CA1017:MarkAssembliesWithComVisible")]

Src/BridgeVs.sln

+6-6
Original file line numberDiff line numberDiff line change
@@ -159,10 +159,10 @@ Global
159159
{36FCAF4D-911D-41A8-8303-E31527D3149F}.Debug-net40|Any CPU.Build.0 = Debug-net40|Any CPU
160160
{36FCAF4D-911D-41A8-8303-E31527D3149F}.Debug-net45|Any CPU.ActiveCfg = Debug-net45|Any CPU
161161
{36FCAF4D-911D-41A8-8303-E31527D3149F}.Debug-net45|Any CPU.Build.0 = Debug-net45|Any CPU
162-
{36FCAF4D-911D-41A8-8303-E31527D3149F}.Debug-netstandard2.0|Any CPU.ActiveCfg = Debug-netstandard2.0|Any CPU
163-
{36FCAF4D-911D-41A8-8303-E31527D3149F}.Debug-netstandard2.0|Any CPU.Build.0 = Debug-netstandard2.0|Any CPU
164-
{36FCAF4D-911D-41A8-8303-E31527D3149F}.Deploy|Any CPU.ActiveCfg = Debug-net40|Any CPU
165-
{36FCAF4D-911D-41A8-8303-E31527D3149F}.Deploy|Any CPU.Build.0 = Debug-net40|Any CPU
162+
{36FCAF4D-911D-41A8-8303-E31527D3149F}.Debug-netstandard2.0|Any CPU.ActiveCfg = Debug-net45|Any CPU
163+
{36FCAF4D-911D-41A8-8303-E31527D3149F}.Debug-netstandard2.0|Any CPU.Build.0 = Debug-net45|Any CPU
164+
{36FCAF4D-911D-41A8-8303-E31527D3149F}.Deploy|Any CPU.ActiveCfg = Release-net40|Any CPU
165+
{36FCAF4D-911D-41A8-8303-E31527D3149F}.Deploy|Any CPU.Build.0 = Release-net40|Any CPU
166166
{36FCAF4D-911D-41A8-8303-E31527D3149F}.Release|Any CPU.ActiveCfg = Release|Any CPU
167167
{36FCAF4D-911D-41A8-8303-E31527D3149F}.Release|Any CPU.Build.0 = Release|Any CPU
168168
{36FCAF4D-911D-41A8-8303-E31527D3149F}.Release-net35|Any CPU.ActiveCfg = Release-net35|Any CPU
@@ -171,8 +171,8 @@ Global
171171
{36FCAF4D-911D-41A8-8303-E31527D3149F}.Release-net40|Any CPU.Build.0 = Release-net40|Any CPU
172172
{36FCAF4D-911D-41A8-8303-E31527D3149F}.Release-net45|Any CPU.ActiveCfg = Release-net45|Any CPU
173173
{36FCAF4D-911D-41A8-8303-E31527D3149F}.Release-net45|Any CPU.Build.0 = Release-net45|Any CPU
174-
{36FCAF4D-911D-41A8-8303-E31527D3149F}.Release-netstandard2.0|Any CPU.ActiveCfg = Release-netstandard2.0|Any CPU
175-
{36FCAF4D-911D-41A8-8303-E31527D3149F}.Release-netstandard2.0|Any CPU.Build.0 = Release-netstandard2.0|Any CPU
174+
{36FCAF4D-911D-41A8-8303-E31527D3149F}.Release-netstandard2.0|Any CPU.ActiveCfg = Release-net45|Any CPU
175+
{36FCAF4D-911D-41A8-8303-E31527D3149F}.Release-netstandard2.0|Any CPU.Build.0 = Release-net45|Any CPU
176176
{36FCAF4D-911D-41A8-8303-E31527D3149F}.Test|Any CPU.ActiveCfg = Debug-net40|Any CPU
177177
{36FCAF4D-911D-41A8-8303-E31527D3149F}.Test|Any CPU.Build.0 = Debug-net40|Any CPU
178178
EndGlobalSection

Test/BridgeVs.Build.Test/VisualizerAttributeInjectorTest.cs

+19-17
Original file line numberDiff line numberDiff line change
@@ -23,14 +23,14 @@
2323
// OTHER DEALINGS IN THE SOFTWARE.
2424
#endregion
2525

26-
using System;
27-
using System.Collections.Generic;
28-
using System.IO;
29-
using System.Linq;
3026
using BridgeVs.Build.TypeMapper;
3127
using BridgeVs.DynamicVisualizers;
3228
using Microsoft.VisualStudio.TestTools.UnitTesting;
3329
using Mono.Cecil;
30+
using System;
31+
using System.Collections.Generic;
32+
using System.IO;
33+
using System.Linq;
3434

3535
namespace BridgeVs.Build.Test
3636
{
@@ -73,18 +73,20 @@ public void Visualizer_MapType_Should_Create_DegguberVisualizerAttribute_OfType_
7373
{
7474
string debuggerVisualizerTargetName = Path.Combine(_thisAssemblyDirectoryName, "TestB.dll");
7575
string visualizerLocation = typeof(DynamicObjectSource).Assembly.Location;
76-
VisualizerAttributeInjector injector = new VisualizerAttributeInjector(visualizerLocation, "11.0");
77-
injector.MapType(typeof(IList<>));
78-
injector.SaveDebuggerVisualizer(debuggerVisualizerTargetName);
79-
80-
AssemblyDefinition generatedAssembly = AssemblyDefinition.ReadAssembly(debuggerVisualizerTargetName);
81-
IEnumerable<object> mappedTypeNames = generatedAssembly
82-
.CustomAttributes
83-
.SelectMany(p =>
84-
p.Properties.Where(n => n.Name.Equals("TargetTypeName"))
85-
.Select(l => l.Argument.Value));
86-
87-
Assert.IsTrue(mappedTypeNames.Contains(typeof(IList<>).AssemblyQualifiedName), "Mapping was not successful");
76+
using (VisualizerAttributeInjector injector = new VisualizerAttributeInjector(visualizerLocation, "11.0"))
77+
{
78+
injector.MapType(typeof(IList<>));
79+
injector.SaveDebuggerVisualizer(debuggerVisualizerTargetName);
80+
81+
AssemblyDefinition generatedAssembly = AssemblyDefinition.ReadAssembly(debuggerVisualizerTargetName);
82+
IEnumerable<object> mappedTypeNames = generatedAssembly
83+
.CustomAttributes
84+
.SelectMany(p =>
85+
p.Properties.Where(n => n.Name.Equals("TargetTypeName"))
86+
.Select(l => l.Argument.Value));
87+
88+
Assert.IsTrue(mappedTypeNames.Contains(typeof(IList<>).AssemblyQualifiedName), "Mapping was not successful");
89+
}
8890
}
8991

9092

@@ -100,7 +102,7 @@ public void Visualizer_MapTypeFromAssembly_Should_Map_All_Types()
100102
injector.SaveDebuggerVisualizer(debuggerVisualizerTargetName);
101103

102104
AssemblyDefinition generatedAssembly = AssemblyDefinition.ReadAssembly(debuggerVisualizerTargetName);
103-
IEnumerable<Type> currentAssemblytypes =
105+
IEnumerable<Type> currentAssemblytypes =
104106
GetType()
105107
.Assembly
106108
.GetTypes()

0 commit comments

Comments
 (0)