Je suis en train de développer un rapport pour Navision 2009 SP1 (Classic Client), où le besoin de fonctionnalités supplémentaires indisponibles dans NAV est apparu.Navision C/AL Créer une erreur avec C# COM dll
J'ai créé une DLL COM en C#, je l'ai installée (en utilisant InstallShield "free" vs version) et j'ai créé une variable d'automation dans NAV. La classe et l'interface sont visibles et je vois la méthode Print, mais lorsque j'essaye de CREER la variable, j'obtiens l'erreur suivante:
"Impossible de créer une instance du contrôle OLE ou du serveur Automation identifié par ... Vérifiez que le contrôle OLE ou le serveur Automation est correctement installé et enregistré. "
Voici le code (juste essayer d'obtenir une connexion aller):
[ComVisible(true), Guid("080a97fb-321c-4a2f-b948-dd52ce263415"), InterfaceType(ComInterfaceType.InterfaceIsDual)]
public interface IPrinterTest
{
[DispId(1)]
bool Print(string test, string bytesInStringRepresentation);
}
[ClassInterface(ClassInterfaceType.None), ComVisible(true), Guid("8d7b85a9-1a20-4ea0-a7d4-decf26632eee"), ProgId("Printer.PrinterTest")]
public class PrinterTest : IPrinterTest
{
public PrinterTest()
{
}
public bool Print(string test, string bytesInStringRepresentation)
{
return true;
}
}
L'environnement de production n'a que .NET Framework Client Profile (3.5 et 4.0), cela signifie que Regasm est disponible (en version 4.0) et que gacutil ne l'est pas. Je suppose que quelque chose ne va pas avec mon code et pas InstallShield, puisque la DLL est disponible pour la sélection dans Navision, - et que le problème survient lorsque j'essaie de créer la variable d'automatisation nav.
Meilleures salutations Marcus
Je ne comprends pas la culture de vote par le bas qui se passe ici, je ne comprends vraiment pas. Si vous pensez que ma question n'est pas satisfaisante, pourquoi ne pas dire pourquoi dans un commentaire? Je ne peux pas améliorer si vous ne me laissez pas savoir ce que je fais mal. – Starwop
L'erreur s'est produite dans la ligne 'CREATE (NameAutomationVariable)'? –
Oui, l'erreur se produit lorsque je fais "CREATE (NameAutomationVariable)". Si je consomme le résultat de CREATE, il renvoie toujours false. – Starwop