2009-03-13 2 views
1

При попытке публикации приложения wpf clickonce появляется следующая ошибка.Ошибка при публикации приложения clickonce

Ошибка Опубликовать произошла следующая ошибка: Не удается бросить COM объект типа «» EnvDTE.DTEClass к типу интерфейса 'Microsoft.VisualStudio.OLE.Interop.IServiceProvider. Эта операция завершилась неудачно, потому что вызов QueryInterface на COM-компоненте для интерфейса с IID '{6D5140C1-7436-11CE-8034-00AA006009FA} не удался из-за следующей ошибки: такой интерфейс не поддерживается (исключение из HRESULT: 0x80004002 (E_NOINTERFACE)) ,

Ошибка возникает, если я пытаюсь опубликовать на FTP-сайт, а также, если попытаюсь опубликовать данные в локальных файловых системах.

Любые идеи? Похоже, что Google не дает никаких полезных результатов.

+0

1) Пробовали ли вы публикации в HTTP, а? 2) Используете ли вы какой-либо COM-код в своем приложении? –

+0

1) Нет, не пробовал HTTP. Я не думаю, что у моей хостинговой компании есть этот вариант. 2) Нет COM. Это приложение WPF для ванилин. –

ответ

1

EnvDTE.DTEClass - это некоторая функциональность, которая должна предоставляться Visual Studio. У меня есть несколько предложений:

  1. Создать новый проект WinForms (только пустая форма) и попытаться опубликовать это.
  2. Try Repairing или Переустановка VS
  3. Есть lookt на Building ClickOnce Applications from the Command Line
+0

Вариант 2, вероятно, является проблемой. Мне придется это расследовать. Вариант 3 неплохо бы попробовать. MAGE не должен выплевывать ошибки EnvDTE, поэтому он может работать из командной строки. Мне все равно нужно узнать MSBuild, поэтому ... –

+0

Вариант 1 не работал. Вариант 3 работал! Я собираюсь повторить вариант 2 и посмотреть, поможет ли это. Однако такая боль. –

+0

имел аналогичную проблему и просто заставил ее работать из командной строки (3) на моей новой машине разработки. Ура! Теперь мне не нужно оставлять своих пользователей, и я могу публиковать исправления ошибок, не загружая свою старую машину dev. –

1

Это EXACT ошибка была решена в моем случае, просто выполнив следующую команду:

regsvr32 "C:\Program Files (x86)\Internet Explorer\ieproxy.dll" 

или для 32-битных окон:

regsvr32 "C:\Program Files\Internet Explorer\ieproxy.dll" 

Дополнительная информация: Вопрос об обращении чтобы была нарушена регистрация для IServiceProvider. Прокси-заглушка CLSID была неправильной (речь шла о actxprxy.dll вместо ieproxy.dll в Windows 7 x64).

Выдержки из: http://blogs.msdn.com/b/smondal/archive/2012/10/02/unable-to-cast-com-object-of-type-system-comobject-to-interface-type-microsoft-visualstudio-ole-interop-iserviceprovider.aspx

Смежные вопросы