Массовое развертывание Управляемый элемент управления ActiveX, написанный на C # .NET 4.0 - PullRequest
0 голосов
/ 18 октября 2011

Я создал управляемый элемент управления ActiveX в C # (.NET 4.0), к которому обращается Office VBA (в настоящее время вызывается из кода VBA в Dynamics).Однако, когда я искал способ развернуть это в массах нашей компании (и поддерживать его в актуальном состоянии), я не могу найти эффективный способ сделать это.

Сначала я подумал, что могу как-то это сделатьчерез ClickOnce, но после прочтения некоторых статей я не думаю, что это сработает.

Есть ли какие-либо предложения?PowerShell возможно?

Мне потребуется несколько раз обновлять этот элемент управления по мере добавления новых функций.

Любой совет приветствуется.

Спасибо за ваше время,

Rob

Ответы [ 2 ]

2 голосов
/ 18 октября 2011

Пока не исключайте ClickOnce. Проблема с ClickOnce заключается в том, что он устанавливает приложения на пользователя , а не на компьютер / систему. Поскольку регистрация COM / ActiveX, как правило, относится ко всей машине / системе, то есть записи реестра находятся в HKLM, ClickOnce не поддерживает его (из-за разрешений, необходимых для изменения части реестра HKLM).

Но, начиная с Windows 2000, можно зарегистрировать COM-объекты в пользовательской части реестра: HKEY_CURRENT_USER\Software\Classes отображается на HKEY_LOCAL_MACHINE\SOFTWARE\Classes, что совпадает с HKEY_CLASSES_ROOT.

Итак, используя что-то вроде RegSvrEx , вы сможете определить записи реестра, которые вам нужно создать в HKCU. Когда вы это сделаете, найдите способ вызвать это обновление HKCU reg, когда произойдет установка / обновление ClickOnce.

0 голосов
/ 18 октября 2011

Вы можете использовать утилиту regasm.exe:

regasm.exe /codebase foo.dll

где foo.dll - это управляемая сборка, содержащая элемент управления ActiveX, который вы хотите предоставить.

...