Zum Inhalt springen

C# Anwendung veröffentlichen


Empfohlene Beiträge

Geschrieben

Hallo Leute,

ich bin neu hier und ich hoffe, dass ich bei dem Durchforsten des Boards nichts übersehen habe.

Mein Probelm ist folgendes, ich habe eine Anwendung entwickelt, welche Daten des Anwenders aufnimmt und in eine Datenbank schreibt. Ich verwende die "System.Data.SQLite" lib für die Datenbank. Mein Program läuft einwandfrei und ich bin sehr zufrieden.

Ich möchte nun diese Anwendung sharen und habe genau dabei ein Problem. Es fängt bei dem Installwizzard an. Soll ich selber einen Wizzard entwickeln oder einen fertigen nutzen? Weiter geht es damit, dass meine Anwendung nicht auf anderen Computer läuft. Es kommt immer folgender Fehler: ".NET Framework Initialization Error: Unable to find a version of the runtime to run this application". Es ist aber .NET installiert. Ich habe die Anwedung mit den Compilersettings für .NET v2 compiliert.

Ich hoffe ich habe mich so weit verständlich ausgedrückt und danke euch bereits im Voraus :)

Liebe Grüße String

  • 2 Wochen später...
Geschrieben

So ich bin wieder da,

ich hatte leider Probleme mit dem PC. Ich habe es nun genau so gemacht wie es dort steht.

Meine Installation geht soweit auch und das Program startet auch. Allerdings kommt da eine Exception -.-

Ich bekomme sie leider nicht weg...

See the end of this message for details on invoking

just-in-time (JIT) debugging instead of this dialog box.

************** Exception Text **************

System.Data.SQLite.SQLiteException: Unable to open the database file

at System.Data.SQLite.SQLite3.Open(String strFilename, SQLiteOpenFlagsEnum flags, Int32 maxPoolSize, Boolean usePool)

at System.Data.SQLite.SQLiteConnection.Open()

at System.Data.Common.DbDataAdapter.FillInternal(DataSet dataset, DataTable[] datatables, Int32 startRecord, Int32 maxRecords, String srcTable, IDbCommand command, CommandBehavior behavior)

at System.Data.Common.DbDataAdapter.Fill(DataTable[] dataTables, Int32 startRecord, Int32 maxRecords, IDbCommand command, CommandBehavior behavior)

at System.Data.Common.DbDataAdapter.Fill(DataTable dataTable)

at BirdMed_FN2.BirdMerd_dbDataSetTableAdapters.TB_HalterTableAdapter.Fill(TB_HalterDataTable dataTable)

at BirdMed_FN2.Main.Test_Load(Object sender, EventArgs e)

at System.Windows.Forms.Form.OnLoad(EventArgs e)

at System.Windows.Forms.Form.OnCreateControl()

at System.Windows.Forms.Control.CreateControl(Boolean fIgnoreVisible)

at System.Windows.Forms.Control.CreateControl()

at System.Windows.Forms.Control.WmShowWindow(Message& m)

at System.Windows.Forms.Control.WndProc(Message& m)

at System.Windows.Forms.ScrollableControl.WndProc(Message& m)

at System.Windows.Forms.ContainerControl.WndProc(Message& m)

at System.Windows.Forms.Form.WmShowWindow(Message& m)

at System.Windows.Forms.Form.WndProc(Message& m)

at System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)

at System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)

at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)

************** Loaded Assemblies **************

mscorlib

Assembly Version: 2.0.0.0

Win32 Version: 2.0.50727.42 (RTM.050727-4200)

CodeBase: file:///C:/WINXP/Microsoft.NET/Framework/v2.0.50727/mscorlib.dll

----------------------------------------

BirdMed_FN2

Assembly Version: 1.0.0.0

Win32 Version: 1.0.0.0

CodeBase: file:///C:/Programme/CiArc/BirdMed_Setup/BirdMed_FN2.exe

----------------------------------------

System.Windows.Forms

Assembly Version: 2.0.0.0

Win32 Version: 2.0.50727.42 (RTM.050727-4200)

CodeBase: file:///C:/WINXP/assembly/GAC_MSIL/System.Windows.Forms/2.0.0.0__b77a5c561934e089/System.Windows.Forms.dll

----------------------------------------

System

Assembly Version: 2.0.0.0

Win32 Version: 2.0.50727.42 (RTM.050727-4200)

CodeBase: file:///C:/WINXP/assembly/GAC_MSIL/System/2.0.0.0__b77a5c561934e089/System.dll

----------------------------------------

System.Drawing

Assembly Version: 2.0.0.0

Win32 Version: 2.0.50727.42 (RTM.050727-4200)

CodeBase: file:///C:/WINXP/assembly/GAC_MSIL/System.Drawing/2.0.0.0__b03f5f7f11d50a3a/System.Drawing.dll

----------------------------------------

System.Data.SQLite

Assembly Version: 1.0.66.0

Win32 Version: 1.0.66.0

CodeBase: file:///C:/Programme/CiArc/BirdMed_Setup/System.Data.SQLite.DLL

----------------------------------------

System.Data

Assembly Version: 2.0.0.0

Win32 Version: 2.0.50727.42 (RTM.050727-4200)

CodeBase: file:///C:/WINXP/assembly/GAC_32/System.Data/2.0.0.0__b77a5c561934e089/System.Data.dll

----------------------------------------

System.Transactions

Assembly Version: 2.0.0.0

Win32 Version: 2.0.50727.42 (RTM.050727-4200)

CodeBase: file:///C:/WINXP/assembly/GAC_32/System.Transactions/2.0.0.0__b77a5c561934e089/System.Transactions.dll

----------------------------------------

Accessibility

Assembly Version: 2.0.0.0

Win32 Version: 2.0.50727.42 (RTM.050727-4200)

CodeBase: file:///C:/WINXP/assembly/GAC_MSIL/Accessibility/2.0.0.0__b03f5f7f11d50a3a/Accessibility.dll

----------------------------------------

System.Xml

Assembly Version: 2.0.0.0

Win32 Version: 2.0.50727.42 (RTM.050727-4200)

CodeBase: file:///C:/WINXP/assembly/GAC_MSIL/System.Xml/2.0.0.0__b77a5c561934e089/System.Xml.dll

----------------------------------------

System.Configuration

Assembly Version: 2.0.0.0

Win32 Version: 2.0.50727.42 (RTM.050727-4200)

CodeBase: file:///C:/WINXP/assembly/GAC_MSIL/System.Configuration/2.0.0.0__b03f5f7f11d50a3a/System.Configuration.dll

----------------------------------------

************** JIT Debugging **************

To enable just-in-time (JIT) debugging, the .config file for this

application or computer (machine.config) must have the

jitDebugging value set in the system.windows.forms section.

The application must also be compiled with debugging

enabled.

For example:

<configuration>

<system.windows.forms jitDebugging="true" />

</configuration>

When JIT debugging is enabled, any unhandled exception

will be sent to the JIT debugger registered on the computer

rather than be handled by this dialog box.

Ich habe die SQL.dll mit ins Root gepackt... ich verstehe nicht was ich da falschmache

Ich hoffe es kann mir jemand helfen.

Geschrieben (bearbeitet)

Nabend

Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location) + @"\Datenbank\BirdMerd_db.db";

Damit müsste es gehen, tut es aber nicht. Ich habe die Vermutung, das es evtl an dem dataGridview liegt, den Dataset hab ich nämlich über die GUI-Properties gemacht und nicht programmiertechnisch. Vielleicht baut er da den Link "\Datenbank\BirdMerd_db.db" statt wie oben...

Ich muss mal sehen, ich habe noch nie ein dgv über den Code gefüttert...

Danke dir aber auf jeden Fall

...Oder muss ich evtl noch etwas andere bei dem User installieren als die .NetFrameworks??

Bearbeitet von String
Geschrieben

Nein ich habe keine Engine installiert, ich wüsste auch nicht, welche ich installieren sollte. Hast du da eine Idee? Ich muss gestehen, ich dachte, da es eine .db datei ist und keine .sql bräuchte ich keine DB-Engine...

ja die db ist vorhaned.

Geschrieben

Hallo nochmal,

kann mir wirklich keiner dabei helfen?

Es muss doch einen Weg geben, eine Datenbank mit der SQLite.dll zu publizieren?

Es wäre super, wenn mir da jemand helfen könnte... Ich übersehe scheinbar einen wichtigen Punkt...

grüße String

Geschrieben

Ich habe mich in letzter Zeit mit "SQL Server Compact 3.5" beschäftigt... Ich weiß nicht ganz wie ich das verwenden soll. Das einbinden ist kein Problem, aber wie nutze ich das richtg... Syntax und das Publizieren der Software damit...

Hat jemand damit Erfahrungen gemacht?

Geschrieben

Super, dann muss ich meinen gesamten Code ändern?!

Es muss doch eine Möglichkeit geben den Fehler daoben zu lösen. Ich verstehe den Grund nicht, warum die Anwendung Schwierigkeiten hat auf meine DB zu connecten...

Geschrieben
Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location) + @"\Datenbank\

Ich erstelle so meinen Ordner, muss ich da noch rechte vergeben und wenn ja wie?

Ich bin auf das Thema mit den Rechten auch schon beim googlen gestoßen, aber dafür hab auch keine Lösung gefunden.

Ja so habe ich die DLL eingestellt, allerdings gebe ich nur eine mit und das ist die

System.Data.SQLite
Geschrieben
Ich erstelle so meinen Ordner, muss ich da noch rechte vergeben und wenn ja wie?

Ich bin auf das Thema mit den Rechten auch schon beim googlen gestoßen, aber dafür hab auch keine Lösung gefunden.

Wie gibst Du denn die Anwendung weiter? Per Installer? Wenn ja, womit erstellt?

Ich muss gestehen, ich weiß nicht, wie man von Hand Rechte vergibt. Aber war bei uns öfter ein Thema, die Rechte explizit im Installer zu vergeben.

Anwendungsdaten gehören dann eigentlich auch nicht in den Ordner der Programmdateien, sondern unterhalb des APPDATA-Ordners... bei Win7 also in einen entsprechend der Anwendung benannten Ordner in ProgrammData, weil in den Ordnern in ProgramFiles nicht geschrieben werden kann/soll.

Geschrieben

Ich erstelle den Ordner mit dem Setup von VS. Ich erstelle eben ein Setupprojekt für meine Anwendung und da stell ich alles ein, aber ich weiss nicht wie und ob ich da Rechte vergeben kann.

Ich hab das schon gehört, das man Datenbanken auslagern soll, weil oft nicht in den Programmvz geschrieben werden darf, aber ich habe dazu nicht im netz gefunden...

Mich nervt es echt, ich verstehe nicht warum das nicht funktioniert. Ich habe mir spaßes halber eine Testanwendung geschrieben, die mit Access lief, da geht alles.... Ich müsste meinen gesamten code und einige Klassen anpassen... -..-

Geschrieben
Ich erstelle den Ordner mit dem Setup von VS. Ich erstelle eben ein Setupprojekt für meine Anwendung und da stell ich alles ein, aber ich weiss nicht wie und ob ich da Rechte vergeben kann.

Weiter oben hast Du gechrieben, dass Du den Ordner anhand des Names der Assembly erstellst. Dann erstellt den DB-Ordner also nicht der Installer sondern Deine Anwendung nach der Installation? Das kann ein Problem sein. Hast Du schon mal auf dem Zielsystem nach abgeschlosser Installation die Rechte auf den verschiedenen Ordnern verglichen?

Mich nervt es echt, ich verstehe nicht warum das nicht funktioniert. Ich habe mir spaßes halber eine Testanwendung geschrieben, die mit Access lief, da geht alles.... Ich müsste meinen gesamten code und einige Klassen anpassen... -..-

Bei sauberem Design sollte die zugrundeliegende Datenanbindung problemlos ausgettauscht werden können. Macht man in der Praxis zwar öfter mal anders, aber vielleicht kannst Du es für die nächsten Projekte mal im Hinterkopf behalten.

Gibt es für SQLLite eine Community oder ein spezielleres Forum als dieses, wo Du fragen könntest, was beim Deployment mit .NET zu beachten ist?

Gibt es bei Euch andere Prokelte mit SQLLite, bei denen Du spicken könntest?

Geschrieben
Path.GetDirectoryName(System.Reflection.Assembly.G etExecutingAssembly().Location) + @"\Datenbank\

So gebe ich den Pfad zu meiner Datenbank an, aber erstellen tue ich den Ordner mit dem Installer. Ich habe gesehen, dass alle Ordner schreibgeschützt sind, kann es daran liegen? Andererseits, geht es mit einer Accessdb. Ich hab zum testen eine kleine Anwendung geschrieben.

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...