thanks a lot guys especially to sir Goldorak84 and sir blah238 based on their statements i found a way to register my Arc Map 10.1 dll's programmatically using vb.net here's what i did
i added a class named "regESRIdll.vb" (i'll paste it below)
and upon clicking registration button i added this code
Dim directoryInfo As New System.IO.DirectoryInfo(Application.StartupPath.ToString)
Dim fileInfos() As System.IO.FileInfo = directoryInfo.GetFiles()
Dim iCount As Integer
For Each fileInfo As System.IO.FileInfo In fileInfos
For Each extension As String In allowedExtensions
If UCase(extension) = UCase(fileInfo.Extension) Then
Dim myAssemblyName As Assembly = Assembly.LoadFile(fileInfo.FullName)
regESRIdll.Execute(True, myAssemblyName) '====to unregister the dll change True to False
iCount += 1
End If
Next
Next
and don't forget to declare regESRIdll as new regESRIdll
'==========================================================================
Imports System.IO
Public Class regESRIdll
Public Enum Product
Desktop
Engine
End Enum
Public Sub Execute(ByVal register As Boolean, ByVal assemply As System.Reflection.Assembly, Optional ByVal product As Product = Product.Desktop, Optional ByVal timeout As Integer = 10000)
' Configure the process to execute the command
Dim process As New Process()
process.StartInfo.FileName = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.CommonProgramFiles), "ArcGIS\bin\ESRIRegAsm.exe")
process.StartInfo.Arguments = String.Format(If(register, """{0}"" /p:{1} /s", """{0}"" /p:{1} /u /s"), assemply.Location, product)
' Invoke the process
process.Start()
process.WaitForExit(timeout)
' Finish
Dim exitCode As Integer = process.ExitCode
process.Close()
If exitCode <> 0 Then
Throw New Exception(If(register, "ESRI registration failed", "ESRI unregistration failed"))
End If
End Sub
End Class
'===============================
-END
thanks again, i hope this posts will help those who will encounter the same problem in the near future.