Вам нужно определить функцию в вашем классе, которая будет получать параметр, который вам нужен, например:
public void MyFunction(MyParameter){ //do anything with your parameter here }
А затем в вашем контроллере вам нужно создать объект вашего класса, например:
[ 111]Наконец, вы можете вызвать функцию вашего класса в контроллере
user.MyFunction(MyParameter);
Если вы используете установщик Windows, помещаете ли вы свои сборки в специальную папку Global Assembly Cache ? Это всегда работало для меня в Vista и Windows 7. Нет необходимости использовать GACUtil или что-либо еще, просто поместите сборки в нужную папку в проекте установщика.
Вы используете gacutil.exe для установки dlls? Или Вы просто копируете файлы?
Так или иначе GAC нужно избежать для пользовательского dlls, если они не используются многими приложениями. Сохраните dlls близкое/локальное к приложению: это будет только стоить Вам некоторого дискового пространства, и это позволяет Вам использовать простое развертывание Xcopy.
Какой компилятор вы используете для создания MSI? После веселья на прошлых выходных я могу быть экспертом по вопросам MSI и Vista :)
При использовании VC2003 или VC2005 возникают разные проблемы в зависимости от версии компилятора.
Если это 2005 год, обязательно установите пакет обновления и пакет обновления для Vista. Это может решить вашу проблему.
Если это не удается, вы можете поместить их в GAC с помощью специального действия, но будьте осторожны, в 2005 году есть ошибка, из-за которой бит no_impersonate установлен неправильно. Вам придется установить этот бит самостоятельно, используя скрипт или orca.exe.
У меня были некоторые (сторонние) MSI, которые не установятся правильно, если я не принудительно включу повышенный режим с самого начала, даже если они покажут приглашение UAC позже в процессе.
Устранение неполадок ... Я предполагаю, что вы производите установку под учетной записью администратора. Но включен ли UAC? Если это, вы получаете запрос на повышение прав UAC? Попробуйте запустить пакет MSI в режиме с повышенными привилегиями, чтобы проверить, работает ли он. Из командной строки с повышенными привилегиями:
msiexec /i setup.msi