Skip to content

Instantly share code, notes, and snippets.

View nguerrera's full-sized avatar
🌴
I no longer work at Microsoft

Nick Guerrera nguerrera

🌴
I no longer work at Microsoft
View GitHub Profile

Make friendly client names

directive:
  - from: swagger-document
    where: $.paths["/$schemagroups/{group-name}/schemas/{schema-name}"].post.responses["200"].schema
    transform: >
      $["x-ms-client-name"] = "content";
  - from: swagger-document
    where: $.paths["/$schemagroups/{group-name}/schemas/{schema-name}"].post.responses["200"].headers["X-Schema-Type"]
Csc
Assembly = C:\Program Files (x86)\Microsoft Visual Studio\2019\Preview\MSBuild\Current\Bin\Roslyn\Microsoft.Build.Tasks.CodeAnalysis.dll
CommandLineArguments = C:\Program Files (x86)\Microsoft Visual Studio\2019\Preview\MSBuild\Current\Bin\Roslyn\csc.exe /nowarn:1701,1702,219,162 /reference:C:\Users\nicholg\Desktop\Test_ALC\CL.Interface\bin\Debug\netstandard2.0\CL.Interface.dll /reference:C:\Users\nicholg\.nuget\packages\microsoft.xmlserializer.generator\2.2.0-preview3.19551.4\lib\netstandard2.0\dotnet-Microsoft.XmlSerializer.Generator.dll /reference:"C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\3.1.0\ref\netcoreapp3.1\Microsoft.CSharp.dll" /reference:"C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\3.1.0\ref\netcoreapp3.1\Microsoft.VisualBasic.Core.dll" /reference:"C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\3.1.0\ref\netcoreapp3.1\Microsoft.VisualBasic.dll" /reference:"C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\3.1.0\ref\netcoreapp3.1\Microsoft.Win32.P
@nguerrera
nguerrera / UnsafeWithoutKeyword.cs
Last active October 15, 2019 13:38
Absence of 'unsafe' C# keyword/switch does not guarantee type or memory safety.
/*
The absence of the C# unsafe keyword and switch does not guarantee code
is type or memory safe. It merely prevents the use of pointer types and
fixed size buffers.
The only thing that can guarantee type and memory safety is
verification and CAS/transparency enforcement.
In particular, the absence of unsafe C# blocks does NOT:
@nguerrera
nguerrera / VersionCompare.proj
Created April 4, 2019 01:00
Fun with msbuild version comparison
<Project>
<Target Name="Demo">
<Message Condition="4.5.10 > 4.5.9" Text=":) Yay, 3 parts work!" Importance="High" />
<Message Condition="2.9 > 2.10" Text=":( Wait, those are version numbers!" Importance="High" />
</Target>
</Project>
@nguerrera
nguerrera / CountPlaceholders.cs
Created July 24, 2018 21:09
Counting placeholders
using System;
class Program
{
static void Main(string[] args)
{
Console.WriteLine(CountPlaceholders("{0,3} {1:x} {{2}}"));
}
static int CountPlaceholders(string format)
@nguerrera
nguerrera / run-devenv-for-core-setup.cmd
Last active July 5, 2018 21:36
Make Test Explorer work in core-setup
:: this makes test explorer work, replace d:\src\core-setup with path to enlistment.
:: Found the env vars by running build -MsBuildLogging=/bl, then look at the Exec task in RunTest target
@setlocal
set NUGET_PACKAGES=D:\Src\core-setup\packages/
set TEST_ARTIFACTS=D:\Src\core-setup\Bin\tests\win-x64.Debug\
set TEST_TARGETRID=win-x64
set BUILDRID=win-x64
set BUILD_ARCHITECTURE=x64
set BUILD_CONFIGURATION=Debug
using System;
using System.Reflection.Metadata;
using System.Reflection.Metadata.Ecma335;
using System.Reflection.PortableExecutable;
class Program
{
static void Main()
{
using (var pe = new PEReader(...))
@nguerrera
nguerrera / gitconfig.ini
Created March 6, 2018 18:46
Git config to prevent pushing to unwanted places
; safety net to enforce fork -> upstream flow
[url "Don't push here. Fork and send PR."]
pushinsteadof = https://github.com/dotnet/
pushinsteadof = https://github.com/microsoft/
static void OpenEmbeddedResources(string path)
{
using (var peStream = File.OpenRead(path))
using (var peReader = new PEReader(peStream))
{
var mdReader = peReader.GetMetadataReader();
foreach (var resourceHandle in mdReader.ManifestResources)
{
var resource = mdReader.GetManifestResource(resourceHandle);
<ItemGroup Condition="'$(TargetFramework)' == 'net45'">
<PackageReference Include="DesktopOnlyDependency">
<Version>1.0.0</Version>
</PackageReference>
</ItemGroup>