Я написал управляемый конвертер файлов OpenXML в C#, но у меня возникли проблемы с развертыванием. Для развертывания я использую проект установки VS.Установка конвертера файлов OpenXML
Я предполагаю, что мой первый вопрос: некоторые люди используют библиотеку классов и другие, используя приложение Windows в качестве COM-сервера. Есть ли предпочтение ни на одном из них? Мой конвертер имеет зависимости от библиотек, не входящих в GAC.
Когда речь заходит о регистрации COM-сервера, следующее сообщение: http://blogs.msdn.com/b/speront/archive/2009/04/17/9553717.aspx
предполагает добавление это в Main() управляемой EXE:
Application.OleRequired();
MyConverter converter = new MyConverter();
Application.Run();
Который не будет работать для проекта установки , Это действительно работает, если я сначала запускаю EXE вручную.
Я попытался запустить Regasm:
Regasm MyConverter.dll, которая прошла успешно, но когда Microsoft Word пытается использовать конвертер, я получаю сообщение об ошибке «Не удается запустить конвертер MyConverter документа»
Затем я попытался создать приложения Windows и с помощью:
public static void Main(string[] args)
{
Guid guid = new Guid("EFADDB5B-933E-49FE-B3C8-F6FD7FB1B788");
RegistrationServices regSrv = new RegistrationServices();
regSrv.RegisterTypeForComClients(typeof(MyConverter), ref guid);
}
Наконец, я попробовал:
regasm /regfile:test.reg MyConverter.dll
, а затем импортируйте файл реестра.
Все они дают ошибку: «Слово не может запустить конвертер MyConverter документа»
У меня есть правильные записи реестра для моего преобразователя в Office \ 12.0 \ Word \ Конвертеры Текстовые \ OOXML Конвертеры \ Импорт
Конвертер успешно работал. Просто развертывание не работает ни в одном экземпляре.
Какие настройки содержатся в файле reg? –