Visual Studio создает проект установки для каждого проекта надстройки. Вы можете начать с этого. Он создает файл MSI, который вы можете распространять.
О второй части - если вы останетесь со сгенерированной Studio установкой, вы, вероятно, не сможете добавить пользовательские диалоги к установке. Вам понадобится какой-нибудь инструмент для сборки инсталляций.
Как насчет запроса имени пользователя и пароля при первом использовании? Таким образом, установка остается простой. По моему опыту, каждый вопрос во время установки увеличивает риск того, что пользователь скажет «WTF, почему я должен отвечать на эти глупые вопросы. Отмена».
Чтобы запрашивать имя пользователя и пароль при первом использовании, нужно только сохранить их где-то после запроса, чтобы в следующий раз вы их знали. Одобренным способом Microsoft является сохранение их в настройках. По умолчанию Studio создает файл настроек в вашем проекте только для этого. Просто добавьте две переменные в этот файл с пустыми значениями по умолчанию. Отметьте их как пользовательские переменные (не переменные приложения).
Из вашей надстройки получите доступ к ним как Properties.Setings.VariableName.
Когда ваша надстройка запускается, проверьте, есть ли у вас имя пользователя и пароль в настройках. Если они пусты, спросите и сохраните.
if (string.IsNullOrEmpty(Properties.Settings.Default.UserName))
{
string name;
string password;
//ask for name and password, replace with your code
AskForUserandPassword(out name, out password);
Properties.Settings.Default.UserName=name;
Properties.Settings.Default.Password=password;
Properties.Settings.Default.Save()
}
Физически это сохраняется где-то глубоко в пользовательском каталоге в файле XML.