ict.ken.be

Delivering solid user friendly software solutions since the dawn of time.

Exe with all dll assemblies included 

Categories: .Net

When Owin was released, I created WebGenius. A small exe you can drop in any folder, run it and everything is accesible as web pages.

I embedded the assemblies like this:

static Program()
{
   AppDomain.CurrentDomain.AssemblyResolve += ResolveAssembly;
}

static Assembly ResolveAssembly(object sender, ResolveEventArgs args)
{
   var resourceName = "WebGenius." + new AssemblyName(args.Name).Name + ".dll";
   Console.WriteLine("Resolving: " + resourceName);
   using (var stream = Assembly.GetExecutingAssembly().GetManifestResourceStream(resourceName))
   {
      if (stream == null) return null;
      var assemblyData = new Byte[stream.Length];
      stream.Read(assemblyData, 0, assemblyData.Length);
      return Assembly.Load(assemblyData);
   }
}

However I just found out about an amazing plugin for the Fody dll weaver:

  • Include Costure.Fody nuget into your exe project and your done.

Some options for your FodyWeavers.xml

<Costura CreateTemporaryAssemblies='false' />
<Costura IncludeDebugSymbols='false' />
<Costura DisableCompression='false' />
<Costura ExcludeAssemblies='Foo|Bar' />-->
<Costura IncludeAssemblies='Foo|Bar' />-->
<Costura Unmanaged32Assemblies='Foo32|Bar32' Unmanaged64Assemblies='Foo64|Bar64' />
<Costura PreloadOrder='Foo|Bar' />

Some options for you project file:

<Target Name="CleanReferenceCopyLocalPaths" AfterTargets="AfterBuild;NonWinFodyTarget" >
   <Delete Files="@(ReferenceCopyLocalPaths->'$(OutDir)%(DestinationSubDirectory)%(Filename)%(Extension)')" />
</Target>

Fun with mac addresses 

Categories: Network

Just easier to remember when you need to map them to your internal virtual network or have to spoof them for whatever reason...

  • 0xBADB00BFEED1
  • 0xCAFEC0FFEE00
  • 0xDEADBEEFFEED
  • 0xDEFACEDBABE1

or make up your own: add, babe, bad, bed, beef, cafe, dead, deaf, decaf, deed, defaced, facade, face, fade, feed.

Delete database with name containing (c#) 

Categories: SQL Server
using (var con = new SqlConnection("Data Source=.; Integrated Security=True;"))
{
con.Open();
var databases = con.GetSchema("Databases");
foreach (DataRow row in databases.Rows)
{
var databaseName = (String)row["database_name"];
if (databaseName.Contains(MockPrefix))
{
var command = String.Format("ALTER DATABASE [{0}] SET SINGLE_USER WITH ROLLBACK IMMEDIATE; DROP DATABASE [{0}]", databaseName);
new SqlCommand(command, con).ExecuteNonQuery();
Debug.WriteLine(String.Format("Removed : {0}", databaseName));
}
}
}
Page 7 of 40 << < 1 2 3 4 5 6 7 8 9 10 20 > >>