предупреждение MSB3391: <DLL> не содержит типов, которые могут быть не зарегистрированы для COM Interop

Mypy знает , как обрабатывать проверки версий Python , и вы можете использовать условные псевдонимы типа , чтобы выбрать правильный тип для правильной версии Python:

if sys.version_info[0] >= 3:
    TryNode = ast.Try
else:
    TryNode = ast.TryFinally

class Visitor(ast.NodeVisitor):


    def visit_Try(self, node):  # type: (TryNode) -> None
        # ...
    visit_TryFinally = visit_Try  # python 2 compatible

[1116 ] Вы можете дополнительно сэкономить на времени выполнения тестов if sys.version_info, поместив этот код в тест if TYPE_CHECKING: .

В качестве примечания: если вы обрабатываете ast.Try в Python 3 для отслеживания компонентов finally: и except ...: оператора try, вы хотите обрабатывать как ast.TryFinally, так и ast.TryExcept в Python. 2, как и в Python 2.5, вы можете использовать только try...finally или try...except в одном выражении.

10
задан VividD 25 November 2014 в 17:31
поделиться

2 ответа

  1. Вам нужен ctor без каких-либо параметров.
  2. У вас должны быть GuidAttribute и ProgIdAttribute вокруг классов.
  3. Лучше пометить сборку как ComVisible (false) и явно отметить классы, которые необходимо экспортировать.
  4. Используйте интерфейсы для ваших классов.
  5. Убедитесь, что у вас есть GuidAttribute в уровень сборки.

      [Guid ( "")]
    [ComVisible (истина)]
    интерфейс IFoo
    {
     void DoFoo ();
    }
    
    [Guid ( "")]
    [ComVisible (истина)]
    [ProgId ( "ProgId.Foo")]
    класс Foo: IFoo
    {
     public void DoFoo ()
     {
     }
    }
    
21
ответ дан 3 December 2019 в 16:30
поделиться

В файле AssemblyInfo.cs убедитесь, что у вас есть следующее:

// Setting ComVisible to false makes the types in this assembly not visible 
// to COM components.  If you need to access a type in this assembly from 
// COM, set the ComVisible attribute to true on that type.
[assembly: ComVisible(true)]

ОБНОВЛЕНИЕ:

Прочтите: Как я могу использовать объекты .NET из Excel VBA ?

Какие ссылки на: http://richnewman.wordpress.com/2007/04/15/a-beginner%E2%80%99s-guide-to-calling-a-net-library-from-excel/

1
ответ дан 3 December 2019 в 16:30
поделиться
Другие вопросы по тегам:

Похожие вопросы: