You may use the executing assembly location like this:
Public Shared Function GetAssemblyDirectory() As String
Return (Path.GetDirectoryName(New Uri(System.Reflection.Assembly.GetExecutingAssembly().CodeBase).LocalPath))
End Function
In addition, as I understand, you use custom actions in the setup project.
You may pass installer property values to custom actions in CustomActionData field.
For example:
/AllUsers=[ALLUSERS] /ProductName=[ProductName] /ProductLanguage=[ProductLanguage]
In the custom action you may use the values using the Context object like this:
Dim productName As String = Context.Parameters("ProductName")
Dim productLanguage As String = Context.Parameters("ProductLanguage")
See a complete list of standard installer properties at
http://msdn.microsoft.com/en-us/library/aa370905(v=vs.85).aspx[
^]