Ответ 1
Какова целевая платформа вашего приложения? Я думаю, вы должны установить платформу на x86
, не устанавливайте ее на Any CPU
.
Я пытаюсь использовать приложение, приложение работает нормально, я пытаюсь редактировать существующий элемент в приложении. щелкнув править am, получив следующую ошибку,
System.Runtime.InteropServices.COMException was unhandled
Message="Class not registered (Exception from HRESULT: 0x80040154 (REGDB_E_CLASSNOTREG))"
Source="System.Windows.Forms"
ErrorCode=-2147221164
StackTrace:
at System.Windows.Forms.UnsafeNativeMethods.CoCreateInstance(Guid& clsid, Object punkOuter, Int32 context, Guid& iid)
at System.Windows.Forms.AxHost.CreateWithoutLicense(Guid clsid)
at System.Windows.Forms.AxHost.CreateWithLicense(String license, Guid clsid)
at System.Windows.Forms.AxHost.CreateInstanceCore(Guid clsid)
at System.Windows.Forms.AxHost.CreateInstance()
at System.Windows.Forms.AxHost.GetOcxCreate()
at System.Windows.Forms.AxHost.TransitionUpTo(Int32 state)
at System.Windows.Forms.AxHost.CreateHandle()
at System.Windows.Forms.Control.CreateControl(Boolean fIgnoreVisible)
at System.Windows.Forms.Control.CreateControl(Boolean fIgnoreVisible)
at System.Windows.Forms.AxHost.EndInit()
at bulk_lister.frm_edititem.InitializeComponent() in New Bulklister\new bulklister\bulk_lister\bulk_lister\frm_edititem.designer.cs:line 4248
at bulk_lister.frm_edititem..ctor(Int32 userid, Int32 intListingId) in New Bulklister\new bulklister\bulk_lister\bulk_lister\frm_edititem.cs:line 187
at bulk_lister.parent_form.funEditItem_fromrghtclktoolStrip_edititm() in New Bulklister\new bulklister\bulk_lister\bulk_lister\parent_form.cs:line 1313
at bulk_lister.parent_form.rghtclktoolStrip_edititm_Click(Object sender, EventArgs e) in New Bulklister\new bulklister\bulk_lister\bulk_lister\parent_form.cs:line 1233
at System.Windows.Forms.ToolStripItem.RaiseEvent(Object key, EventArgs e)
at System.Windows.Forms.ToolStripButton.OnClick(EventArgs e)
at System.Windows.Forms.ToolStripItem.HandleClick(EventArgs e)
at System.Windows.Forms.ToolStripItem.HandleMouseUp(MouseEventArgs e)
at System.Windows.Forms.ToolStripItem.FireEventInteractive(EventArgs e, ToolStripItemEventType met)
at System.Windows.Forms.ToolStripItem.FireEvent(EventArgs e, ToolStripItemEventType met)
at System.Windows.Forms.ToolStrip.OnMouseUp(MouseEventArgs mea)
at System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
at System.Windows.Forms.Control.WndProc(Message& m)
at System.Windows.Forms.ScrollableControl.WndProc(Message& m)
at System.Windows.Forms.ToolStrip.WndProc(Message& m)
at System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
at System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
at System.Windows.Forms.NativeWindow.DebuggableCallback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
at System.Windows.Forms.UnsafeNativeMethods.DispatchMessageW(MSG& msg)
at System.Windows.Forms.Application.ComponentManager.System.Windows.Forms.UnsafeNativeMethods.IMsoComponentManager.FPushMessageLoop(Int32 dwComponentID, Int32 reason, Int32 pvLoopData)
at System.Windows.Forms.Application.ThreadContext.RunMessageLoopInner(Int32 reason, ApplicationContext context)
at System.Windows.Forms.Application.ThreadContext.RunMessageLoop(Int32 reason, ApplicationContext context)
at System.Windows.Forms.Application.Run(Form mainForm)
at bulk_lister.Program.Main() inNew Bulklister\new bulklister\bulk_lister\bulk_lister\Program.cs:line 17
at System.AppDomain._nExecuteAssembly(Assembly assembly, String[] args)
at System.AppDomain.nExecuteAssembly(Assembly assembly, String[] args)
at System.Runtime.Hosting.ManifestRunner.Run(Boolean checkAptModel)
at System.Runtime.Hosting.ManifestRunner.ExecuteAsAssembly()
at System.Runtime.Hosting.ApplicationActivator.CreateInstance(ActivationContext activationContext, String[] activationCustomData)
at System.Runtime.Hosting.ApplicationActivator.CreateInstance(ActivationContext activationContext)
at System.Activator.CreateInstance(ActivationContext activationContext)
at Microsoft.VisualStudio.HostingProcess.HostProc.RunUsersAssemblyDebugInZone()
at System.Threading.ThreadHelper.ThreadStart_Context(Object state)
at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
at System.Threading.ThreadHelper.ThreadStart()
InnerException:
С его файлом Dll, который я использовал с моим приложением. Я попытался зарегистрировать этот файл dll с помощью regsvr32, но я не могу это сделать.
DLL:AxInterop.DHTMLEDLib.dll & Interop.DHTMLEDLib.dll
У кого-нибудь есть идея об этом исключении?
Какова целевая платформа вашего приложения? Я думаю, вы должны установить платформу на x86
, не устанавливайте ее на Any CPU
.
Это, вероятно, не решение вашей проблемы, но предложение на всякий случай (я знаю, что раньше сталкивался с подобной проблемой, но не с .NET-приложением).
Если вы находитесь на 64-битной машине, есть файлы 2 regsvr32.exe
;
Один находится в \Windows\System32
а другой - в \Windows\SysWOW64
.
Вы не можете зарегистрировать 64-битные COM-объекты с 32-разрядной версией, но вы можете сделать это наоборот. Я попытался бы зарегистрировать вашу DLL с обоими regsvr32.exe
файлами явно (например, набрав "C:\Windows\System32\regsvr32.exe /i mydll.dll
", а затем "C:\Windows\SysWOW64\regsvr32.exe /i mydll.dll
" ) и посмотрев, поможет ли это...
Я получил ту же ошибку с компонентом vlc, когда я изменил структуру с 4.5 до 4. но это сработало для меня, когда я сменил платформу с любого процессора на x86.
То, что я сегодня наткнулся на DLL, которую я знал, отлично работает с моим проектом VS2013, но не с VS2015:
Перейдите к: Project -> XXXX Properties -> Build -> Uncheck "Prefer 32-bit"
Этот ответ просрочен и, вероятно, не принесет пользы, но если вы. Но я надеюсь, что это когда-нибудь поможет кому-нибудь.
Мое решение состояло в том, чтобы создать платформу в диспетчере конфигурации в visual studio и установить x64
[HRESULT: 0x80040154 (REGDB_E_CLASSNOTREG))
Просто глядя на сообщение, это звучит как один или несколько компонентов, которые вы ссылаетесь, или одна или несколько из их зависимостей зарегистрированы неправильно.
Если вы знаете, какой компонент вы можете использовать regsvr32.exe, чтобы зарегистрировать его, просто откройте командную строку, перейдите в каталог, в котором находится этот компонент, и введите regsvr32 filename.dll(предположим, что это dll), если он работает, попробуйте снова запустить код, иначе вернитесь сюда с ошибкой.
Если вы не знаете, какой именно компонент, попробуйте переустановить/восстановить программное обеспечение ГИС (предположим, вы установили какое-то программное обеспечение ГИС, которое включает компонент, который вы пытаетесь использовать).
Вам нужно будет зарегистрировать DHTMLED.ocx
После последовательности попыток я пришел к простому решению. Вы можете попробовать переустановить плагин ActiveX для Adobe flashplayer.
откройте cmd от имени администратора и попробуйте зарегистрироваться в обоих местах