Regfree com в VBA - ClassFactory не может предоставить запрошенные классC#

Место общения программистов C#
Ответить Пред. темаСлед. тема
Anonymous
 Regfree com в VBA - ClassFactory не может предоставить запрошенные класс

Сообщение Anonymous »

Работая над созданием библиотеки .net 8, которая будет вызвана из Excel VBA через Com Interop. Я добился некоторого успеха, настраивая это с помощью Regsvr32 , но, понизив этот путь по более ранним проектам, меня очень привлекает идея «Free Com». Это было бы намного проще для меня. Конечно, это доставляет мне немного проблем. Ссылка. < /p>
Это мой файл проекта: < /p>

Код: Выделить всё


net8.0-windows
enable
enable
true
true








all
runtime; build; native; contentfiles; analyzers; buildtransitive




true
MyTest


Как вы можете видеть, у меня есть enableregfreecom set. Я получаю все следующие файлы от моей сборки: < /p>

Код: Выделить всё

MyTest.COM.dll
MyTest.COM.tlb
MyTest.COM.comhost.dll
MyTest.COM.X.manifest
[plus a few others I don't thing are relevant]
< /code>
У меня есть следующий простой тестовый объект, который я пытаюсь использовать: < /p>
[assembly: ComVisible(true)]
[assembly: ClassInterface(ClassInterfaceType.None)]

namespace MyTest.COM
{
[Guid("c99bc767-9def-4f24-8e6c-dc89496f90d8")]
public class COMDebug : ICOMDebug
{
public int Add(int x, int y) => x + y;
}

[Guid("ac1bd331-2979-4ad3-ae29-d839d2d9d64c")]
public interface ICOMDebug
{
int Add(int x, int y);
}
}
< /code>
Я нашел несколько мест, которые приводят примеры того, как использовать Regfree com из VBA. Этот ответ конкретно гласит, что он возможен и дает псудо-пример. Вот мой неработающий код VBA, работающий от Excel: < /p>
Sub Test()
Dim ctx
Dim dbg
Dim r As Integer

Set ctx = CreateObject("Microsoft.Windows.ActCtx")
ctx.Manifest = "C:\Path\To\Files\MyTest.COM.X.manifest"
Set dbg = ctx.CreateObject("MyTest.COM.COMDebug")

r = dbg.Add(2, 2)
MsgBox b
End Sub
< /code>
Выражение ctx.createObject ("mytest.com.comdebug") < /code> Ошибка: < /p>

Ошибка времени выполнения '-2147221231 (80040111). Class < /p>
< /blockquote>
Мое исследование не смогло выяснить много полезной информации по этой проблеме. Я подтвердил, что PROGID 
я использую совпадения того, что выводит в манифест -файл. Все мои выходные файлы находятся в одной папке- я даже пытался поместить их все в одну и ту же папку, что и Excel.exe, как и тест. Приведенное выше сообщение об ошибке также отличается от того, что я получаю, если я попытаюсь использовать CreateObject на Progid , который не существует, или если я пытаюсь использовать CreateObject ("myTest.com.comdebug") без настраиваемого ActCtx , поэтому я чувствую, что нахожусь на правильном пути. Или почему он не работает? Я не вижу способа применить эту информацию к моей проблеме по употреблению композиции от Excel VBA.


Подробнее здесь: https://stackoverflow.com/questions/796 ... sted-class
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Regfree com в VBA - ClassFactory не может предоставить запрошенные класс
    Anonymous » » в форуме C#
    0 Ответы
    2 Просмотры
    Последнее сообщение Anonymous
  • Regfree com в VBA - ClassFactory не может предоставить запрошенные класс
    Anonymous » » в форуме C#
    0 Ответы
    4 Просмотры
    Последнее сообщение Anonymous
  • Regfree com в VBA - ClassFactory не может предоставить запрошенные класс
    Anonymous » » в форуме C#
    0 Ответы
    4 Просмотры
    Последнее сообщение Anonymous
  • 80040111 ClassFactory не может предоставить запрошенный класс (исключение из HRESULT: 0x80040111 (CLASS_E_CLASSNOTAVAILA
    Anonymous » » в форуме C++
    0 Ответы
    33 Просмотры
    Последнее сообщение Anonymous
  • Как разблокировать проект vba через пароль, используя код vba
    Гость » » в форуме Python
    0 Ответы
    590 Просмотры
    Последнее сообщение Гость

Вернуться в «C#»