C/Front - findet dll nicht

1. Dezember 2009 15:58

Hallo zusammen,

ich erhalte beim Verbindugnsversuch mit C/Front folgende Fehlermeldung:

Microsoft.Dynamics.NAV.CFront.CFrontException: The Navision CFront initialization failed, with following error: Eine Ausnahme vom Typ "System.Exception" wurde ausgelöst.. Please verify that CFront.dll/CFrontsql.dll are available and located in the directory where the application is started.
bei Microsoft.Dynamics.NAV.CFront.CFrontDotNet.Init()
bei Microsoft.Dynamics.NAV.CFront.CFrontDotNet.get_Instance()
bei Microsoft.Dynamics.NAV.CFront.FrmMain.Connect() in C:\Users\volker.ZENTRALE\Documents\Visual Studio 2008\Projects\CFront\Main.cs:Zeile 1067.


In dem Verzeichnis, aus dem ich mein Programm starte sind aber alle cfront-dlls vorhanden. Müssen die dlls evtl. alle ins NAV-Verzeichnis?

Volker

Re: C/Front - findet dll nicht

1. Dezember 2009 16:47

Zur 2009 finde ich keine txt, in der Textdatei der Version 4 steht, das die Datei "cfront.dll or cfrontsql.dll" in das C/FRONT Verzeichnis kopiert werden muß.

readme.txt hat geschrieben:-------------------------------------------------------------------------------
C/FRONT W1 4.0 SP3 for all Windows Platforms

Release notes
-------------------------------------------------------------------------------

Introduction
------------
This document is a plain text file that can be displayed with any text
editor. It contains up-to-date information about the following topics:

o Manual installation of C/FRONT C-API
o Manual installation of C/FRONT OCX-API
o List of C/FRONT Files

This note is only relevant if C/FRONT has to be installed on systems with more than
one version of Microsoft Business Solutions-Navision installed, or on a system that does not have
Microsoft Business Solutions-Navision installed.


Manual installation of C/FRONT C-API
------------------------------------

Copy the following C-API specific files from the CFRONT directory on the installation
media to a directory of your choice, for example, "c:\program files\cf":

readme.txt
cf.h
sample.c
sample.txt
sample.fdb
sample.exe
libload.c
LIBLOAD.H
dberror.txt
cfront.dll or cfrontsql.dll

Note
If you are running on Navision Database Server, copy the cfront.dll to
the directory specified above. If you are running on SQL Server, copy the
cfrontsql.dll to the directory specified above.

Normally, the C/FRONT library (cfront.dll/cfrontsql.dll) reads the registry in
order to locate the Navision Database Server. However, if multiple Microsoft Business Solutions-Navision
systems are installed or if Microsoft Business Solutions-Navision is not present on the
system, the function SetNavisionPath in the cfront.dll/cfrontsql.dll library must
be called specifying the path to the directory where Microsoft Business Solutions-Navision is
installed or to a directory containing the following files from a Microsoft Business Solutions-Navision installation:

dbm.dll
ndbcs.dll
nc_netb.dll
nc_tcp.dll
slave.exe
fin.etx
fin.stx
fin.flf

This completes the C/FRONT C-API installation.



Manual installation of C/FRONT OCX-API
--------------------------------------

Copy the following OCX-API specific files from the CFRONT directory on the
installation media to the directory in which the C-API is installed:

cfront.ocx
cfront.hlp
cfront.xls

If the following are not present on the system, copy them from the CFRONT directory
on the installation media to the Windows system directory:

msvcrt.dll
mfc42.dll


Note that the Windows system directory usually is

c:\winnt35\system32 on Windows NT 3.5x systems,

c:\winnt\system32 on Windows NT 4.00 and Windows 2000 systems,

and c:\windows\system on Windows 98 systems.


Register the cfront.ocx controls by following these steps carefully:

1) Start Microsoft Business Solutions-Navision
2) Click <Tools><Custom Controls...><Control><Browse...>
3) Select the cfront.ocx from the Microsoft Business Solutions-Navision directory
4) Click <OK>
5) Exit Microsoft Business Solutions-Navision

or if Microsoft Business Solutions-Navision is not installed, use the utility regsvr32:

regsvr32 cfront.ocx


This completes the C/FRONT OCX-API installation.


List of C/FRONT Files
---------------------
C/FRONT consists of the following files:


cfront.dll C/FRONT C-API library for Navision Database Server
cfrontsql.dll C/FRONT C-API library for SQL Server
cf.h C/FRONT header file

sample.c C/FRONT sample application
sample.exe Runable sample application
sample.fdb Microsoft Business Solutions-Navision sample database
sample.fbk Microsoft Business Solutions-Navision backup of the sample database
sample.txt Document describing how to build and run the
C/FRONT C-API sample application

libload.c Source file containing functions
to load and unload cfront.dll
LIBLOAD.H Header file declaring functions
to load and unload cfront.dll

dberror.txt Database error/return codes

cfront.ocx C/FRONT OCX
cfront.hlp C/FRONT OCX online help file
cfront.xls C/FRONT OCX Microsoft Excel sample application

mfc42.dll Microsoft Foundation Classes Library
msvcrt.dll Microsoft Visual C Run-Time Library

readme.txt This document




---------------------------------------------------------------------------
This document is subject to change without notice and does not represent
any commitment on the part of Microsoft Corporation.

Microsoft Corporation assumes no responsibility for any faults or
shortcomings in this document.

Re: C/Front - findet dll nicht

1. Dezember 2009 17:17

der o. g. Fehler entsteht beim Aufruf des dotnetsamples aus dem DevKit auf der NAV-CD.

Die cfront-dlls sind ja alle auf der lokalen Festplatte, aber nicht in einem separaten Verzeichnis, sondern in dem Programmverzeichnis meine Programms (dotnetsample).

Mein Vermutung nach könnte es ein Problem mit dem Verzeichnis-Namen von NAV sein. Die o.g. Sample-Anwendung benötigt ja die Angabe des NAV-Verzeichnisses und hier hatte ich auch schon Schwierigkeiten den richtigen Pfad einzugeben, was anscheinend an Windows7 liegt. Ich habe hier ein Windows7 64-bit Ultimate (DE). Im Explorer ist das Programmverzeichnis "C:\Programm (x86)" um aber o. g. Sample-Anwendung zum Laufen zu bewegen mußte ich "C:\Program Files (x86)" eingeben. Ist das jetzt nur eine Besonderheit der Ultimate-Version oder ist das bei Win7 generell so? Oder gibt es bei cfront ein 64-bit-Problem?

Re: C/Front - findet dll nicht

1. Dezember 2009 18:27

Hallo vsnase,

ist sichergestellt, das die DLL's registriert sind, und die Assembly unter Windows\Assembly liegt?
Der Installer hat da manchmal seine Eigenheiten.

Gruß, Fiddi

Re: C/Front - findet dll nicht

2. Dezember 2009 11:19

Also ich habe jetzt das DevKit neu installiert, Verweise im Projekt aktualisiert, aber die Meldung bleibt die Gleiche (schreibt man Gleiche groß?).

Ich bekomme einfach bemängelt, dass die cfront.dll bzw. cfrontsql.dll nicht gefunden wird. VS-Debugger liefert einen IO-Error, Datei nicht gefunden. Die Dateien (cfront.dll, cfrontsql.dll, Microsoft.Dynamics.NAV.CFront.CFrontDotNet.dll) sind alle im Verzeichnis meiner Assembly, dem Debug-Verzeichnis, dem obj-Verzeichnis vorhanden.

So langsam bin ich ratlos.

Volker

Re: C/Front - findet dll nicht

2. Dezember 2009 11:27

vsnase hat geschrieben:Die Dateien (cfront.dll, cfrontsql.dll, Microsoft.Dynamics.NAV.CFront.CFrontDotNet.dll) sind alle im Verzeichnis meiner Assembly, dem Debug-Verzeichnis, dem obj-Verzeichnis vorhanden.


Nur so ne Idee, gibt es evtl. durch eine vorherige C/FRONT installation noch im Assembly-Cache andere Einträge mit einer anderen Schlüsseltokennr.?
Ggf. nochmal deinstallieren, den Assambly Chache prüfen und erneut installieren.

Re: C/Front - findet dll nicht

2. Dezember 2009 12:27

Devkit deinstalliert, Cache durchsucht, neu installiert, VS mit Adminrechten gestartet, neu kompiliert -> Ergebnis: meckert immer noch, dass er die Datei nicht findet. Ich stell das jetzt für die nächsten Tage zurück und les mir die ganze Doku nochmal durch. Irgendwas muß ich ja vergessen haben.