{
	"id": "7d534c0d-9d69-4b7b-aefe-a14a427f7f86",
	"created_at": "2026-04-06T00:06:13.660856Z",
	"updated_at": "2026-04-10T13:11:36.814988Z",
	"deleted_at": null,
	"sha1_hash": "6289b4bbaa16612d3422bdea3f1233a5d47b6424",
	"title": "Regasm.exe (Assembly Registration Tool) - .NET Framework",
	"llm_title": "",
	"authors": "",
	"file_creation_date": "0001-01-01T00:00:00Z",
	"file_modification_date": "0001-01-01T00:00:00Z",
	"file_size": 70329,
	"plain_text": "Regasm.exe (Assembly Registration Tool) - .NET Framework\r\nBy gewarren\r\nArchived: 2026-04-05 18:13:02 UTC\r\nThe Assembly Registration tool reads the metadata within an assembly and adds the necessary entries to the\r\nregistry, which allows COM clients to create .NET Framework classes transparently. Once a class is registered,\r\nany COM client can use it as though the class were a COM class. The class is registered only once, when the\r\nassembly is installed. Instances of classes within the assembly cannot be created from COM until they are actually\r\nregistered.\r\nTo run the tool, use Visual Studio Developer Command Prompt or Visual Studio Developer PowerShell.\r\nSyntax\r\nregasm assemblyFile [options]\r\nParameters\r\nParameter Description\r\nassemblyFile The assembly to be registered with COM.\r\nOption Description\r\n/codebase\r\nCreates a Codebase entry in the registry. The Codebase entry specifies the file path\r\nfor an assembly that's not installed in the global assembly cache. Don't specify this\r\noption if you will subsequently install the assembly that you're registering into the\r\nglobal assembly cache. It is strongly recommended the assemblyFile argument that\r\nyou specify with the /codebase option be a strong-named assembly.\r\n/registered\r\nSpecifies that this tool will only refer to type libraries that have already been\r\nregistered.\r\n/asmpath:directory\r\nSpecifies a directory containing assembly references. Must be used with the\r\n/regfile option.\r\n/nologo Suppresses the Microsoft startup banner display.\r\n/regfile [: regFile]\r\nGenerates the specified .reg file for the assembly, which contains the needed registry\r\nentries. Specifying this option does not change the registry. You cannot use this\r\noption with the /u or /tlb options.\r\nhttps://msdn.microsoft.com/en-us/library/tzat5yw6.aspx\r\nPage 1 of 3\n\nOption Description\r\n/silent or /s Suppresses the display of success messages.\r\n/tlb [: typeLibFile]\r\nGenerates a type library from the specified assembly containing definitions of the\r\naccessible types defined within the assembly.\r\n/unregister or /u\r\nUnregisters the creatable classes found in assemblyFile. Omitting this option causes\r\nRegasm.exe to register the creatable classes in the assembly.\r\n/verbose\r\nSpecifies verbose mode; displays a list of any referenced assemblies for which a\r\ntype library needs to be generated, when specified with the /tlb option.\r\n/? or /help Displays command syntax and options for the tool.\r\nNote\r\nThe Regasm.exe command-line options are case insensitive. You only need to provide enough of the option to\r\nuniquely identify it. For example, /n is equivalent to /nologo and /t: outfile.tlb is equivalent to /tlb:\r\noutfile.tlb .\r\nYou can use the /regfile option to generate a .reg file that contains the registry entries instead of making the\r\nchanges directly to the registry. You can update the registry on a computer by importing the .reg file with the\r\nRegistry Editor tool (Regedit.exe). The .reg file does not contain any registry updates that can be made by user-defined register functions. The /regfile option only emits registry entries for managed classes. This option does\r\nnot emit TypeLibID or InterfaceID entries.\r\nWhen you specify the /tlb option, Regasm.exe generates and registers a type library describing the types found\r\nin the assembly. Regasm.exe places the generated type libraries in the current working directory or the directory\r\nspecified for the output file. Generating a type library for an assembly that references other assemblies may cause\r\nseveral type libraries to be generated at once. You can use the type library to provide type information to\r\ndevelopment tools like Visual Studio. Don't use the /tlb option if the assembly you are registering was\r\nproduced by the Type Library Importer (Tlbimp.exe). You cannot export a type library from an assembly that was\r\nimported from a type library. Using the /tlb option has the same effect as using the Type Library Exporter\r\n(Tlbexp.exe) and Regasm.exe, with the exception that Tlbexp.exe does not register the type library it produces. If\r\nyou use the /tlb option to register a type library, you can use the /tlb option with the /unregister option to\r\nunregister the type library. Using the two options together will unregister the type library and interface entries,\r\nwhich can clean the registry considerably.\r\nWhen you register an assembly for use by COM, Regasm.exe adds entries to the registry on the local computer.\r\nMore specifically, it creates version-dependent registry keys that allow multiple versions of the same assembly to\r\nrun side by side on a computer. The first time an assembly is registered, one top-level key is created for the\r\nassembly, and a unique subkey is created for the specific version. Each time you register a new version of the\r\nassembly, Regasm.exe creates a subkey for the new version.\r\nhttps://msdn.microsoft.com/en-us/library/tzat5yw6.aspx\r\nPage 2 of 3\n\nFor example, consider a scenario where you register the managed component, myComp.dll, version 1.0.0.0 for use\r\nby COM. Later, you register myComp.dll, version 2.0.0.0. You determine that all COM client applications on the\r\ncomputer are using myComp.dll version 2.0.0.0 and you decide to unregister myComponent.dll version 1.0.0.0.\r\nThis registry scheme allows you to unregister myComp.dll version 1.0.0.0 because only the version 1.0.0.0 subkey\r\nis removed.\r\nAfter registering an assembly using Regasm.exe, you can install it in the global assembly cache so that it can be\r\nactivated from any COM client. If the assembly is only going to be activated by a single application, you can\r\nplace it in that application's directory. Using the /codebase option is an alternative to using the global assembly\r\ncache; however, the location of the assembly during registration is recorded globally and activation will fail if the\r\nassembly is moved. If the assembly isn't found through probing, the /codebase option will load the assembly in\r\na load-from context that has additional considerations documented in Assembly.LoadFrom.\r\nExamples\r\nThe following command registers all public classes contained in myTest.dll .\r\nregasm myTest.dll\r\nThe following command generates the file myTest.reg , which contains all the necessary registry entries. This\r\ncommand does not update the registry.\r\nregasm myTest.dll /regfile:myTest.reg\r\nThe following command registers all public classes contained in myTest.dll , and generates and registers the\r\ntype library myTest.tlb , which contains definitions of all the public types defined in myTest.dll .\r\nregasm myTest.dll /tlb:myTest.tlb\r\nSee also\r\nTools\r\nTlbexp.exe (Type Library Exporter)\r\nTlbimp.exe (Type Library Importer)\r\nRegistering Assemblies with COM\r\nDeveloper command-line shells\r\nSource: https://msdn.microsoft.com/en-us/library/tzat5yw6.aspx\r\nhttps://msdn.microsoft.com/en-us/library/tzat5yw6.aspx\r\nPage 3 of 3",
	"extraction_quality": 1,
	"language": "EN",
	"sources": [
		"MITRE"
	],
	"origins": [
		"web"
	],
	"references": [
		"https://msdn.microsoft.com/en-us/library/tzat5yw6.aspx"
	],
	"report_names": [
		"tzat5yw6.aspx"
	],
	"threat_actors": [],
	"ts_created_at": 1775433973,
	"ts_updated_at": 1775826696,
	"ts_creation_date": 0,
	"ts_modification_date": 0,
	"files": {
		"pdf": "https://archive.orkl.eu/6289b4bbaa16612d3422bdea3f1233a5d47b6424.pdf",
		"text": "https://archive.orkl.eu/6289b4bbaa16612d3422bdea3f1233a5d47b6424.txt",
		"img": "https://archive.orkl.eu/6289b4bbaa16612d3422bdea3f1233a5d47b6424.jpg"
	}
}