2012-11-09 4 views
1

Я пытаюсь создать новый документ с помощью библиотеки расширения iManage (iManExt.dll). Он отлично работает на моей локальной машине. Но когда я развертываю это на другой машине, он не работает, хотя все DLL там. Я получаю следующую ошибку от desksiteОшибка System.MissingMethodException при создании нового документа с использованием C# VS2012

System.MissingMethodException: Method not found: 'System.Type 
System.Runtime.InteropServices.Marshal.GetTypeFrom CLSID(System.Guid)'. 

Следующий мой код C# для создания нового документа.

private IManage.IManDocument NewDocumentProfile(IManage.IManFolder aFolder, String aFileName) 
{ 
    IManage.IManDocument NewDocument; 

    IMANEXTLib.ImportCmd MyCommand = new IMANEXTLib.ImportCmd(); 
    IMANEXTLib.ContextItems MyContext = new IMANEXTLib.ContextItems(); 

    MyContext.Add("ParentWindow", Helper.GetActiveWindow()); 
    MyContext.Add("ImanDestinationObject", aFolder); 

    MyContext.Add("IManExt.Import.KeepCheckedOut", 0); 
    MyContext.Add("IManExt.Import.FileName", aFileName); 
    MyContext.Add("IManExt.CalledFromIntegration", false); 
    MyContext.Add("IManExt.OpenCmd.NoCmdUI", false); 

    MyCommand.Initialize(MyContext); 
    MyCommand.Update(); 

    if (MyCommand.Status == (int)IMANEXTLib.CommandStatus.nrActiveCommand) 
    { 
     MyCommand.Execute(); 
     NewDocument = MyContext.Item("ImportedDocument"); 
    } 
    else 
    { 
     NewDocument = null; 
    } 
    return NewDocument; 
} 
+0

звучит как COM-компонент, не установленный на целевой машине –

+0

является компонентом/dll, зарегистрированным на развертывании machince? – doiley

ответ

0

благодарит за ответы. Я решил эту проблему. Но я не знаю, почему это произошло. Когда я устанавливаю свойство interop types этого dll (IMANEXTLib) на false, он отлично работает. Но когда я установил это верно, это не сработает.

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