Skip to content

Instantly share code, notes, and snippets.


Mads Kristensen madskristensen

View GitHub Profile
madskristensen / RemoveBadgeInVS.ps1
Last active May 8, 2021
Remove Preview badge in VS
View RemoveBadgeInVS.ps1
$search = "C:\Program Files (x86)\Microsoft Visual Studio\"
Write-Host "Looking for PreviewBadge.pkgdef..."
$file = Get-ChildItem -Path $search -Include *previewbadge.pkgdef -Recurse
if ($file){
Remove-Item $file
Write-Host "PreviewBadge.pkgdef deleted"
madskristensen / ETagMiddleware.cs
Last active Apr 28, 2021
ASP.NET Core ETAg middleware
View ETagMiddleware.cs
using Microsoft.AspNetCore.Builder;
using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.WebUtilities;
using Microsoft.Net.Http.Headers;
using System.IO;
using System.Security.Cryptography;
using System.Threading.Tasks;
public class ETagMiddleware
madskristensen / _Layout.cshtml
Last active Apr 15, 2021
Social sharing buttons for ASP.NET Core
View _Layout.cshtml
<!-- Render the partial -->
@{await Html.RenderPartialAsync("_SocialSharing", ViewData["Title"]);}
madskristensen /
Last active Jan 23, 2021
VS extension checklist

Visual Studio Extensibility Checklist

Here is a list of things to make sure to remember before publishing your Visual Studio extension.

Adhere to threading rules

Add the Microsoft.VisualStudio.SDK.Analyzers NuGet package to your VSIX project, which will help you discover and fix common violations of best practices regarding threading.

Add high-quality icon

All extensions should have an icon associated with it. Make sure the icon is a high-quality .png file with the size 90x90 pixels in 96 DPI or more. After adding the icon to your VSIX project, register it in the .vsixmanifest file as both the Icon and Preview image.

Name and description

madskristensen / VSIX UIContext
Last active Jan 15, 2021
Shows how to add custom UIContexts
View VSIX UIContext
On the package
"(CSharpFileOpen | VBFileOpen)",
new[] { "CSharpFileOpen", "VBFileOpen" },
new[] { "ActiveEditorContentType:CSharp", "ActiveEditorContentType:Basic" })]
In the VSCT
madskristensen / devenv.pkgundef
Last active Sep 15, 2020
Disable built-in Visual Studio packages
View devenv.pkgundef
// HOW TO:
// Create a file called devenv.pkgundef in the same directory as devenv.exe.
// It's usually located at C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\IDE
// Then call "devenv.exe /updateconfiguration" from an elevated command prompt.
// Each GUID below represent a package that Visual Studio is loading. This is the
// list of package that I personally don't ever use. You can modify the list of
madskristensen / ImportMefComponent.cs
Last active May 3, 2020
Import MEF components from non-MEF exported classes
View ImportMefComponent.cs
using System.ComponentModel.Composition;
using Microsoft.VisualStudio.Shell;
using Microsoft.VisualStudio.Shell.TableManager;
public class ExtensionPackage : Package
private ITableManagerProvider _tableManagerProvider;
protected override void Initialize()
madskristensen / KnownMonikersToBitmap.cs
Created Sep 24, 2015
Uses the IVsImageService2 to convert a KnownMoniker to BitmapSource
View KnownMonikersToBitmap.cs
public static BitmapSource GetImage(ImageMoniker moniker, int size)
ImageAttributes imageAttributes = new ImageAttributes();
imageAttributes.Flags = (uint)_ImageAttributesFlags.IAF_RequiredFlags;
imageAttributes.ImageType = (uint)_UIImageType.IT_Bitmap;
imageAttributes.Format = (uint)_UIDataFormat.DF_WPF;
imageAttributes.LogicalHeight = size;
imageAttributes.LogicalWidth = size;
imageAttributes.StructSize = Marshal.SizeOf(typeof(ImageAttributes));
madskristensen /
Last active May 3, 2018
Extensibility tools