![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgFDfxuZl9Ho8oVuFtUv2Go8qp33d-AM2kbyAx8hmB3R_bjwI66zm8tPlvj3jz06slx4b3nj7Z-l8KubY-TdTRdax8lscv8cO8yCG-lAUVBpTVI_D4DYN-vkUIpuQFDMEI87Z2YxT5CaR4/s640/classLiborConsoleapp.png)
Assemblies can by written in any of the .net languages. Assemblies are self contained they do not need to write information to the registry or the system they're running on, they can even contain resource files such as images. Assemblies do not need to be installed you can simply copy them to a new machine and all of the assemblies will just work in the application folder.
.net doesn't actually run C#, F# or VB what it does is compile them down to MSIL (Microsoft Intermediate Language) which then is run using JIT, (Just in Time) compiler.
.net uses four pieces of information to identify an Assembly:
- Name
- Version
- Public Key
- Culture
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjTnyX40E2FTKV0QYtGbU_DSeciZnbVm8R3OesVuGakCBtK9VbmXAtFw5stHsNg7Zs9L8uYYAwBO5m-PqoCb8VaPUavA5i7Lo0uvx7otlNje4ugcBhyQUSD1jSTZ7c27S8vLTMrOsDII-A/s1600/AssemblyInfromation.png)
or you can you can also set your assembly information through code, either through the AssemblyInfo.cs file
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgtlK4ycYPA6JjN3zK5Na8M1hkUQphJiNiQnxFi5OSW0JY72dJzG7OiXYV40_HFgR7hjvr321XHrdIOnOejI8L5A3PU6WzIZ9ouVOtf80c_BZDyq7wiBcm6upmUKagKIC0VV65TQjw32tA/s1600/assemblyInfo.png)
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
// General Information about an assembly is controlled through the following
// set of attributes. Change these attribute values to modify the information
// associated with an assembly.
[assembly: AssemblyTitle("00Assemblies")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("")]
[assembly: AssemblyProduct("00Assemblies")]
[assembly: AssemblyCopyright("Copyright © 2014")]
[assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")]
// Setting ComVisible to false makes the types in this assembly not visible
// to COM components. If you need to access a type in this assembly from
// COM, set the ComVisible attribute to true on that type.
[assembly: ComVisible(false)]
// The following GUID is for the ID of the typelib if this project is exposed to COM
[assembly: Guid("85505784-7c64-41e5-91fb-0811b5e44b86")]
// Version information for an assembly consists of the following four values:
//
// Major Version
// Minor Version
// Build Number
// Revision
//
// You can specify all the values or you can default the Build and Revision Numbers
// by using the '*' as shown below:
// [assembly: AssemblyVersion("1.0.*")]
[assembly: AssemblyVersion("1.0.0.0")]
[assembly: AssemblyFileVersion("1.0.0.0")]
or you can include it in your you code file
using System;
using System.Reflection;
using System.Runtime.InteropServices;
[assembly: AssemblyTitle("00Assemblies")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("")]
[assembly: AssemblyProduct("00Assemblies")]
[assembly: AssemblyCopyright("Copyright © 2014")]
[assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")]
[assembly: ComVisible(false)]
[assembly: Guid("85505784-7c64-41e5-91fb-0811b5e44b86")]
[assembly: AssemblyVersion("1.0.0.0")]
[assembly: AssemblyFileVersion("1.0.0.0")]
namespace _00Assemblies
{
class Program
{
static void Main(string[] args)
{
}
}
}