Ошибка задания типа при использовании интерактивного F # - PullRequest
1 голос
/ 20 июня 2011

У меня есть решение, состоящее из 2 проектов:

  • Утилиты - Этот проект содержит тип MyMatlab и ссылается на ссылку COM (TLP) Matlab Application (Version 7.11) Type Library

  • LBM - Этот проект содержит функцию displayMyMatlab, которая использует тип MyMatlab из проекта Utilities, и поэтому этот проект ссылается на Utilities

Я создаю fsx файл, содержащий:

 #r @".\bin\Release\LBM.dll"
 #r @".\bin\Release\Utilities.dll"
 LBM.displayMyMatlab()

и я получаю следующую ошибку:

Microsoft (R) F# 2.0 Interactive build 4.0.30319.1
Copyright (c) Microsoft Corporation. All Rights Reserved.

For help type #help;;

> 

--> Referenced 'D:\Olda\Bak\Projects\LBM\OldaConsortium\bin\Release\LBM.dll'


--> Referenced 'D:\Olda\Bak\Projects\LBM\OldaConsortium\bin\Release\Utilities.dll'



Lars_Slump_Post.fsx(45,21): error FS0074: The type referenced through 'Utilities.Matlab' is defined in an assembly that is not referenced. You must add a reference to assembly 'Utilities'.
> 

Что это значит? Когда я делаю то же самое, используя обычный скомпилированный проект, он работает просто отлично. Любая помощь приветствуется!

1 Ответ

1 голос
/ 20 июня 2011

Томас Петричек ответил на похожий вопрос здесь: Использование COM DLL с FSI

Я предполагаю, что вам нужно сослаться на сгенерированную dll-оболочку, прежде чем ссылаться на ваши собственные dll. Сгенерированная оболочка обычно называется Interop.LibName.dll в папке bin.

...