From ad1bff87bfbfc096c0061b7a2bfb5be657eb9c2e Mon Sep 17 00:00:00 2001 From: mjsabby Date: Mon, 20 Jul 2015 12:07:44 -0700 Subject: [PATCH] Visual Studio 2015 RTM Update --- .nuget/packages.config | 4 -- ClrHeapAllocationAnalyzer.sln | 7 +-- .../AllocationAnalyzerTests.cs | 8 +-- .../ClrHeapAllocationsAnalyzer.Test.csproj | 43 ++++++--------- ClrHeapAllocationsAnalyzer.Test/app.config | 15 ++++++ .../packages.config | 16 +++--- .../ClrHeapAllocationAnalyzer.csproj | 33 +++++------- ClrHeapAllocationsAnalyzer/Diagnostic.nuspec | 8 +-- ClrHeapAllocationsAnalyzer/packages.config | 17 +++--- ClrHeapAllocationsAnalyzer/tools/install.ps1 | 47 +++++++++++++--- .../tools/uninstall.ps1 | 54 ++++++++++++++++--- README.md | 2 +- 12 files changed, 157 insertions(+), 97 deletions(-) delete mode 100644 .nuget/packages.config create mode 100644 ClrHeapAllocationsAnalyzer.Test/app.config diff --git a/.nuget/packages.config b/.nuget/packages.config deleted file mode 100644 index 0901fde..0000000 --- a/.nuget/packages.config +++ /dev/null @@ -1,4 +0,0 @@ - - - - \ No newline at end of file diff --git a/ClrHeapAllocationAnalyzer.sln b/ClrHeapAllocationAnalyzer.sln index 1991abb..97273b2 100644 --- a/ClrHeapAllocationAnalyzer.sln +++ b/ClrHeapAllocationAnalyzer.sln @@ -1,15 +1,10 @@  Microsoft Visual Studio Solution File, Format Version 12.00 # Visual Studio 14 -VisualStudioVersion = 14.0.22823.1 +VisualStudioVersion = 14.0.23107.0 MinimumVisualStudioVersion = 10.0.40219.1 Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ClrHeapAllocationAnalyzer", "ClrHeapAllocationsAnalyzer\ClrHeapAllocationAnalyzer.csproj", "{EC7D2390-8B99-4D52-8733-45AF8616DC35}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = ".nuget", ".nuget", "{18E73244-762C-41D9-A62E-14C706675A06}" - ProjectSection(SolutionItems) = preProject - .nuget\packages.config = .nuget\packages.config - EndProjectSection -EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ClrHeapAllocationsAnalyzer.Test", "ClrHeapAllocationsAnalyzer.Test\ClrHeapAllocationsAnalyzer.Test.csproj", "{9F29A769-B1F0-41E0-8944-B81EDF8C96E8}" EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ClrHeapAllocationAnalyzer.Vsix", "ClrHeapAllocationsAnalyzer.Vsix\ClrHeapAllocationAnalyzer.Vsix.csproj", "{B1412F49-1ABA-4698-B928-451FDA8DAF85}" diff --git a/ClrHeapAllocationsAnalyzer.Test/AllocationAnalyzerTests.cs b/ClrHeapAllocationsAnalyzer.Test/AllocationAnalyzerTests.cs index 8479bd4..1335592 100644 --- a/ClrHeapAllocationsAnalyzer.Test/AllocationAnalyzerTests.cs +++ b/ClrHeapAllocationsAnalyzer.Test/AllocationAnalyzerTests.cs @@ -14,10 +14,10 @@ public abstract class AllocationAnalyzerTests { protected static readonly List references = new List { - MetadataReference.CreateFromAssembly(typeof(int).Assembly), - MetadataReference.CreateFromAssembly(typeof(Console).Assembly), - MetadataReference.CreateFromAssembly(typeof(Enumerable).Assembly), - MetadataReference.CreateFromAssembly(typeof(IList<>).Assembly) + MetadataReference.CreateFromFile(typeof(int).Assembly.Location), + MetadataReference.CreateFromFile(typeof(Console).Assembly.Location), + MetadataReference.CreateFromFile(typeof(Enumerable).Assembly.Location), + MetadataReference.CreateFromFile(typeof(IList<>).Assembly.Location) }; protected IList GetExpectedDescendants(IEnumerable nodes, ImmutableArray expected) diff --git a/ClrHeapAllocationsAnalyzer.Test/ClrHeapAllocationsAnalyzer.Test.csproj b/ClrHeapAllocationsAnalyzer.Test/ClrHeapAllocationsAnalyzer.Test.csproj index 0e94552..1040340 100644 --- a/ClrHeapAllocationsAnalyzer.Test/ClrHeapAllocationsAnalyzer.Test.csproj +++ b/ClrHeapAllocationsAnalyzer.Test/ClrHeapAllocationsAnalyzer.Test.csproj @@ -1,5 +1,5 @@  - + Debug AnyCPU @@ -10,7 +10,7 @@ Properties ClrHeapAllocationAnalyzer.Test ClrHeapAllocationAnalyzer.Test - v4.5 + v4.5.2 512 @@ -35,40 +35,28 @@ - ..\packages\Microsoft.CodeAnalysis.Common.1.0.0-rc2\lib\net45\Microsoft.CodeAnalysis.dll + ..\packages\Microsoft.CodeAnalysis.Common.1.0.0\lib\net45\Microsoft.CodeAnalysis.dll True - ..\packages\Microsoft.CodeAnalysis.CSharp.1.0.0-rc2\lib\net45\Microsoft.CodeAnalysis.CSharp.dll - True - - - ..\packages\Microsoft.CodeAnalysis.CSharp.1.0.0-rc2\lib\net45\Microsoft.CodeAnalysis.CSharp.Desktop.dll + ..\packages\Microsoft.CodeAnalysis.CSharp.1.0.0\lib\net45\Microsoft.CodeAnalysis.CSharp.dll True - ..\packages\Microsoft.CodeAnalysis.CSharp.Workspaces.1.0.0-rc2\lib\net45\Microsoft.CodeAnalysis.CSharp.Workspaces.dll - True - - - ..\packages\Microsoft.CodeAnalysis.CSharp.Workspaces.1.0.0-rc2\lib\net45\Microsoft.CodeAnalysis.CSharp.Workspaces.Desktop.dll - True - - - ..\packages\Microsoft.CodeAnalysis.Common.1.0.0-rc2\lib\net45\Microsoft.CodeAnalysis.Desktop.dll + ..\packages\Microsoft.CodeAnalysis.CSharp.Workspaces.1.0.0\lib\net45\Microsoft.CodeAnalysis.CSharp.Workspaces.dll True - ..\packages\Microsoft.CodeAnalysis.Workspaces.Common.1.0.0-rc2\lib\net45\Microsoft.CodeAnalysis.Workspaces.dll + ..\packages\Microsoft.CodeAnalysis.Workspaces.Common.1.0.0\lib\net45\Microsoft.CodeAnalysis.Workspaces.dll True - ..\packages\Microsoft.CodeAnalysis.Workspaces.Common.1.0.0-rc2\lib\net45\Microsoft.CodeAnalysis.Workspaces.Desktop.dll + ..\packages\Microsoft.CodeAnalysis.Workspaces.Common.1.0.0\lib\net45\Microsoft.CodeAnalysis.Workspaces.Desktop.dll True - - ..\packages\System.Collections.Immutable.1.1.33-beta\lib\portable-net45+win8+wp8+wpa81\System.Collections.Immutable.dll + + ..\packages\System.Collections.Immutable.1.1.36\lib\portable-net45+win8+wp8+wpa81\System.Collections.Immutable.dll True @@ -92,8 +80,8 @@ True - - ..\packages\System.Reflection.Metadata.1.0.18-beta\lib\portable-net45+win8\System.Reflection.Metadata.dll + + ..\packages\System.Reflection.Metadata.1.0.21\lib\portable-net45+win8\System.Reflection.Metadata.dll True @@ -117,7 +105,10 @@ - + + + Designer + @@ -129,8 +120,8 @@ - - + + \ No newline at end of file diff --git a/ClrHeapAllocationsAnalyzer/Diagnostic.nuspec b/ClrHeapAllocationsAnalyzer/Diagnostic.nuspec index f645b7e..8764c63 100644 --- a/ClrHeapAllocationsAnalyzer/Diagnostic.nuspec +++ b/ClrHeapAllocationsAnalyzer/Diagnostic.nuspec @@ -2,7 +2,7 @@ ClrHeapAllocationAnalyzer - 1.0.0.6 + 1.0.0.7 Clr C# Heap Allocation Analyzer mjsabby mjsabby @@ -15,9 +15,9 @@ The code-assist version that integrates with the Visual Studio 2015 IDE is here, https://visualstudiogallery.msdn.microsoft.com/23ef1a4d-bc9d-49f1-a84f-ca358daaf587 NOTE: This is the build analyzer. - NOTE: You require ' ' ' ' Visual Studio 2015 CTP 6 ' ' ' ' for this to work. + NOTE: You require ' ' ' ' Visual Studio 2015 ' ' ' ' for this to work. - A few fixes that were left out due to merge issue. False positive on method groups, and new array was missing. + Visual Studio 2015 RTM Update. Copyright clr allocations boxing closure displayclass delegate enumerator newobj roslyn analyzer diagnostic @@ -26,7 +26,7 @@ true - + diff --git a/ClrHeapAllocationsAnalyzer/packages.config b/ClrHeapAllocationsAnalyzer/packages.config index 4db59e9..29291ec 100644 --- a/ClrHeapAllocationsAnalyzer/packages.config +++ b/ClrHeapAllocationsAnalyzer/packages.config @@ -1,11 +1,12 @@  - - - - - - - - + + + + + + + + + \ No newline at end of file diff --git a/ClrHeapAllocationsAnalyzer/tools/install.ps1 b/ClrHeapAllocationsAnalyzer/tools/install.ps1 index dae2440..8178834 100644 --- a/ClrHeapAllocationsAnalyzer/tools/install.ps1 +++ b/ClrHeapAllocationsAnalyzer/tools/install.ps1 @@ -1,18 +1,49 @@ param($installPath, $toolsPath, $package, $project) -$analyzersPath = join-path $toolsPath "analyzers" +$analyzersPaths = Join-Path (Join-Path (Split-Path -Path $toolsPath -Parent) "analyzers" ) * -Resolve -# Install the language agnostic analyzers. -foreach ($analyzerFilePath in Get-ChildItem $analyzersPath) +foreach($analyzersPath in $analyzersPaths) { - $project.Object.AnalyzerReferences.Add($analyzerFilePath.FullName) + # Install the language agnostic analyzers. + if (Test-Path $analyzersPath) + { + foreach ($analyzerFilePath in Get-ChildItem $analyzersPath -Filter *.dll) + { + if($project.Object.AnalyzerReferences) + { + $project.Object.AnalyzerReferences.Add($analyzerFilePath.FullName) + } + } + } } -# Install language specific analyzers. # $project.Type gives the language name like (C# or VB.NET) -$languageAnalyzersPath = join-path $analyzersPath $project.Type +$languageFolder = "" +if($project.Type -eq "C#") +{ + $languageFolder = "cs" +} +if($project.Type -eq "VB.NET") +{ + $languageFolder = "vb" +} +if($languageFolder -eq "") +{ + return +} -foreach ($analyzerFilePath in Get-ChildItem $languageAnalyzersPath) +foreach($analyzersPath in $analyzersPaths) { - $project.Object.AnalyzerReferences.Add($analyzerFilePath.FullName) + # Install language specific analyzers. + $languageAnalyzersPath = join-path $analyzersPath $languageFolder + if (Test-Path $languageAnalyzersPath) + { + foreach ($analyzerFilePath in Get-ChildItem $languageAnalyzersPath -Filter *.dll) + { + if($project.Object.AnalyzerReferences) + { + $project.Object.AnalyzerReferences.Add($analyzerFilePath.FullName) + } + } + } } \ No newline at end of file diff --git a/ClrHeapAllocationsAnalyzer/tools/uninstall.ps1 b/ClrHeapAllocationsAnalyzer/tools/uninstall.ps1 index 5b6bd6d..9130bcb 100644 --- a/ClrHeapAllocationsAnalyzer/tools/uninstall.ps1 +++ b/ClrHeapAllocationsAnalyzer/tools/uninstall.ps1 @@ -1,18 +1,56 @@ param($installPath, $toolsPath, $package, $project) -# Uninstall the language agnostic analyzers. -$analyzersPath = join-path $toolsPath "analyzers" +$analyzersPaths = Join-Path (Join-Path (Split-Path -Path $toolsPath -Parent) "analyzers" ) * -Resolve -foreach ($analyzerFilePath in Get-ChildItem $analyzersPath) +foreach($analyzersPath in $analyzersPaths) { - $project.Object.AnalyzerReferences.Remove($analyzerFilePath.FullName) + # Uninstall the language agnostic analyzers. + if (Test-Path $analyzersPath) + { + foreach ($analyzerFilePath in Get-ChildItem $analyzersPath -Filter *.dll) + { + if($project.Object.AnalyzerReferences) + { + $project.Object.AnalyzerReferences.Remove($analyzerFilePath.FullName) + } + } + } } -# Uninstall language specific analyzers. # $project.Type gives the language name like (C# or VB.NET) -$languageAnalyzersPath = join-path $analyzersPath $project.Type +$languageFolder = "" +if($project.Type -eq "C#") +{ + $languageFolder = "cs" +} +if($project.Type -eq "VB.NET") +{ + $languageFolder = "vb" +} +if($languageFolder -eq "") +{ + return +} -foreach ($analyzerFilePath in Get-ChildItem $languageAnalyzersPath) +foreach($analyzersPath in $analyzersPaths) { - $project.Object.AnalyzerReferences.Remove($analyzerFilePath.FullName) + # Uninstall language specific analyzers. + $languageAnalyzersPath = join-path $analyzersPath $languageFolder + if (Test-Path $languageAnalyzersPath) + { + foreach ($analyzerFilePath in Get-ChildItem $languageAnalyzersPath -Filter *.dll) + { + if($project.Object.AnalyzerReferences) + { + try + { + $project.Object.AnalyzerReferences.Remove($analyzerFilePath.FullName) + } + catch + { + + } + } + } + } } \ No newline at end of file diff --git a/README.md b/README.md index 767f138..9d500a7 100644 --- a/README.md +++ b/README.md @@ -13,6 +13,6 @@ You can find also it on the Visual Studio Gallery, https://visualstudiogallery.m If you want it use it in your build: https://www.nuget.org/packages/ClrHeapAllocationAnalyzer/1.0.0.7 -**NOTE: Requires [Visual Studio 2015 RC](https://www.visualstudio.com/news/vs2015-vs)** +**NOTE: Requires [Visual Studio 2015](https://www.visualstudio.com/news/vs2015-vs)** ![example](https://cloud.githubusercontent.com/assets/1930559/4606581/2a027d08-5225-11e4-8d4e-686c204a1267.png) \ No newline at end of file