Autor Beitrag
mkRE
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 98



BeitragVerfasst: Do 03.10.13 14:56 
Hallo zusammen,

ich habe ei´ne kleine Anwendung abgeschlossen die als Release Version funktioniert Realese Ordner auf Desktop Kopiert die Exe funktioniert.
Ich verwende eine Datenbank Datei von MS Acces 2003 dort greife ich über eine Applikation zu usw.

Jetzt habe ich eine Setup Datei erstellt mit dem Setup Assistenten von einem Beispiel bei YouTube abgeschaut und hat auch funktioniert bis auf
das ich sobald ich geänderte Daten in der Datenbank Datei speichern will ich eine Fehlermeldung bekomme mit dem Hinweis "Failed to Update database "C:\PROGRAM FILES

und den folgenden Details:
Zitat:

************** Ausnahmetext **************
System.Data.OleDb.OleDbException (0x80004005): Operation muss eine aktualisierbare Abfrage verwenden.
bei BTG_Database.Bonatrans_DB1DataSetTableAdapters.TableAdapterManager.UpdateAll(Bonatrans_DB1DataSet dataSet) in C:\Users\Maerz\Documents\Visual Studio 2010\Projects\BTG-Database\BTG-Database\Bonatrans_DB1DataSet.Designer.cs:Zeile 8807.
bei BTG_Database.frmBereiche.bereichBindingNavigatorSaveItem_Click(Object sender, EventArgs e) in C:\Users\xxx\Documents\Visual Studio 2010\Projects\BTG-Database\BTG-Database\frmBereiche.cs:Zeile 29.
bei System.Windows.Forms.ToolStripItem.RaiseEvent(Object key, EventArgs e)
bei System.Windows.Forms.ToolStripButton.OnClick(EventArgs e)
bei System.Windows.Forms.ToolStripItem.HandleClick(EventArgs e)
bei System.Windows.Forms.ToolStripItem.HandleMouseUp(MouseEventArgs e)
bei System.Windows.Forms.ToolStripItem.FireEventInteractive(EventArgs e, ToolStripItemEventType met)
bei System.Windows.Forms.ToolStripItem.FireEvent(EventArgs e, ToolStripItemEventType met)
bei System.Windows.Forms.ToolStrip.OnMouseUp(MouseEventArgs mea)
bei System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
bei System.Windows.Forms.Control.WndProc(Message& m)
bei System.Windows.Forms.ScrollableControl.WndProc(Message& m)
bei System.Windows.Forms.ToolStrip.WndProc(Message& m)
bei System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
bei System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
bei System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)


************** Geladene Assemblys **************
mscorlib
Assembly-Version: 4.0.0.0.
Win32-Version: 4.0.30319.18052 built by: FX45RTMGDR.
CodeBase: file:///C:/Windows/Microsoft.NET/Framework/v4.0.30319/mscorlib.dll.
----------------------------------------
BTG-Database
Assembly-Version: 1.0.0.0.
Win32-Version: 1.0.0.0.
CodeBase: file:///C:/Program%20Files%20(x86)/BTG_DB/BTG-Database.exe.
----------------------------------------
System.Windows.Forms
Assembly-Version: 4.0.0.0.
Win32-Version: 4.0.30319.18047 built by: FX45RTMGDR.
CodeBase: file:///C:/windows/Microsoft.Net/assembly/GAC_MSIL/System.Windows.Forms/xxx/System.Windows.Forms.dll.
----------------------------------------
System.Drawing
Assembly-Version: 4.0.0.0.
Win32-Version: 4.0.30319.18021 built by: FX45RTMGDR.
CodeBase: file:///C:/windows/Microsoft.Net/assembly/GAC_MSIL/System.Drawing/xxx/System.Drawing.dll.
----------------------------------------
System
Assembly-Version: 4.0.0.0.
Win32-Version: 4.0.30319.18044 built by: FX45RTMGDR.
CodeBase: file:///C:/windows/Microsoft.Net/assembly/GAC_MSIL/System/xxx/System.dll.
----------------------------------------
System.Data
Assembly-Version: 4.0.0.0.
Win32-Version: 4.0.30319.18047 built by: FX45RTMGDR.
CodeBase: file:///C:/windows/Microsoft.Net/assembly/GAC_32/System.Data/xxx/System.Data.dll.
----------------------------------------
System.Core
Assembly-Version: 4.0.0.0.
Win32-Version: 4.0.30319.17929 built by: FX45RTMREL.
CodeBase: file:///C:/windows/Microsoft.Net/assembly/GAC_MSIL/System.Core/xxx/System.Core.dll.
----------------------------------------
System.Configuration
Assembly-Version: 4.0.0.0.
Win32-Version: 4.0.30319.18060 built by: FX45RTMGDR.
CodeBase: file:///C:/windows/Microsoft.Net/assembly/GAC_MSIL/System.Configuration/xxx/System.Configuration.dll.
----------------------------------------
System.Xml
Assembly-Version: 4.0.0.0.
Win32-Version: 4.0.30319.18060 built by: FX45RTMGDR.
CodeBase: file:///C:/windows/Microsoft.Net/assembly/GAC_MSIL/System.Xml/xxx/System.Xml.dll.
----------------------------------------
System.Transactions
Assembly-Version: 4.0.0.0.
Win32-Version: 4.0.30319.17929 built by: FX45RTMREL.
CodeBase: file:///C:/windows/Microsoft.Net/assembly/GAC_32/System.Transactions/xxx/System.Transactions.dll.
----------------------------------------
System.EnterpriseServices
Assembly-Version: 4.0.0.0.
Win32-Version: 4.0.30319.17929 built by: FX45RTMREL.
CodeBase: file:///C:/windows/Microsoft.Net/assembly/GAC_32/System.EnterpriseServices/xxx/System.EnterpriseServices.dll.
----------------------------------------
mscorlib.resources
Assembly-Version: 4.0.0.0.
Win32-Version: 4.0.30319.17929 built by: FX45RTMREL.
CodeBase: file:///C:/windows/Microsoft.Net/assembly/GAC_MSIL/mscorlib.resources/xxx/mscorlib.resources.dll.
----------------------------------------
System.Data.DataSetExtensions
Assembly-Version: 4.0.0.0.
Win32-Version: 4.0.30319.17929 built by: FX45RTMREL.
CodeBase: file:///C:/windows/Microsoft.Net/assembly/GAC_MSIL/System.Data.DataSetExtensions/xxx/System.Data.DataSetExtensions.dll.
----------------------------------------
System.Numerics
Assembly-Version: 4.0.0.0.
Win32-Version: 4.0.30319.17929 built by: FX45RTMREL.
CodeBase: file:///C:/windows/Microsoft.Net/assembly/GAC_MSIL/System.Numerics/xxx/System.Numerics.dll.
----------------------------------------
System.Windows.Forms.resources
Assembly-Version: 4.0.0.0.
Win32-Version: 4.0.30319.17929 built by: FX45RTMREL.
CodeBase: file:///C:/windows/Microsoft.Net/assembly/GAC_MSIL/System.Windows.Forms.resources/xxx/System.Windows.Forms.resources.dll.
----------------------------------------

************** JIT-Debuggen **************
Um das JIT-Debuggen (Just-In-Time) zu aktivieren, muss in der
Konfigurationsdatei der Anwendung oder des Computers
(machine.config) der jitDebugging-Wert im Abschnitt system.windows.forms festgelegt werden.
Die Anwendung muss mit aktiviertem Debuggen kompiliert werden.

Zum Beispiel:

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

Wenn das JIT-Debuggen aktiviert ist, werden alle nicht behandelten
Ausnahmen an den JIT-Debugger gesendet, der auf dem
Computer registriert ist, und nicht in diesem Dialogfeld behandelt.

Leider kann ich damit jetzt konkret nicht anfangen bzw. mir kommt es vor als akzeptiert er den neuen Pfad nicht?!
Obwohl die Realese Version in einem anderen Ordner tadellos funktioniert. Muss ich bei der SETUP erstellung noch etwas beachten?

Freue mich über jede Antwort die mir helfen kann.Danke

Moderiert von user profile iconTh69: Quote-Tags hinzugefügt
Th69
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Moderator
Beiträge: 4764
Erhaltene Danke: 1052

Win10
C#, C++ (VS 2017/19/22)
BeitragVerfasst: Do 03.10.13 17:16 
Hallo,

unter Windows (XP, Vista, Win7, Win8) darf unter dem Pfad "Programme" (bzw. "Program Files") von der Anwendung nicht mehr geschrieben werden - daher die Fehlermeldung. Die Abhilfe besteht darin die Datenbank in den dafür vorgesehenen AppData-Ordner zu installieren (und den Zugriffspfad entsprechend zu ändern).
Unter WinForms gibt es dafür die Eigenschaft Application.UserAppDataPath. Schau mal ob es eine entsprechende Einstellung bei dem Setup-Programm dafür gibt.
mkRE Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 98



BeitragVerfasst: Do 03.10.13 23:37 
Hallo,

danke für deine schnelle Antwort. Das wusste ich gar nicht das aus dem Pfad nicht mehr bzw. nicht geschrieben werden kann. Es handelt sich dabei um mein erstes Datenbank Projekt.
Wenn ich also den Install Ordner nicht unter Programme installieren würde, sollte es also funktionieren so wie ich verstanden habe?
Lediglich ist das nicht mein Ziel gerne hätte ich das unter Programme wie alle anderen Programme sind was ja eigentlich üblich ist oder?!
Ich hätte das jetzt gerne das die Anwendung unter Programme installiert ist und die Datenbank Datei im AppData Ordner so meintest du das auch??
Th69
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Moderator
Beiträge: 4764
Erhaltene Danke: 1052

Win10
C#, C++ (VS 2017/19/22)
BeitragVerfasst: Fr 04.10.13 09:02 
Hallo mkRE,

ja, genau so meinte ich es:
- Anwendung (+ DLLs etc.) im Installationsordner
- Datenbank (und evtl. andere zu beschreibende Daten) im (User)AppData-Verzeichnis
mkRE Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 98



BeitragVerfasst: Fr 04.10.13 16:43 
Habe jetzt die Variante wie zuletzt beschrieben versucht hat auch super geklappt.Leider findet meine Anwendung die Datanbank Datei nicht.
Ich weiß jetzt nicht was ich genau machen muss.Die Datenbank Datei habe ich beim erstellen des Projekts als Attached Datei eingebunden.Erstmal nachdenken was man da machen kann vielleicht hast du eine Idee?
Th69
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Moderator
Beiträge: 4764
Erhaltene Danke: 1052

Win10
C#, C++ (VS 2017/19/22)
BeitragVerfasst: Fr 04.10.13 17:03 
Wie sieht denn dein ConnectionString aus?
Hast du eine "<Program>.exe.config"-Datei in deinem Ausgabe-Ordner (neben der "<Program>.exe")? Und steht dort der ConnectionString drin?
Oder ist dieser bei dir fest als String im Programmcode?

Du mußt dann auf jeden Fall den Pfad dort ändern. Das beste ist es die Variable "|DataDirectory|" dafür zu benutzen.

Probiere mal die Lösungen unter
stackoverflow.com/qu...or-the-actual-folder oder www.codeproject.com/...oject-appdata-folder
mkRE Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 98



BeitragVerfasst: Sa 05.10.13 19:44 
Ich werde das mal in kürze richtig durchlesen und mal versuchen anzuwenden.
Ich verwende zu dieser Anwendung zwei Datenbankdateien.Einmal für ein Login System SQL ...
und einmal eine OleDB MS Acces 2003 Datenbank Datei für Arbeitsdaten. Das problem fängt schon beim Login an.
Der ConnectionString für das Login System ist ein im Programm integrierter Code.

Momentan habe ich nicht meinen Rechner mit dem Projekt bei mir aber ich meine ich habe "<Program>.exe.config" mit dem Projekt eingebunden im Ausgabe Ordner.

Ich melde mich soblad ich wieder an meinem Rechner bin.
mkRE Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 98



BeitragVerfasst: So 13.10.13 13:35 
Hallo Th69 ich werde morgen an deine Vorschläge hoffentlich rangehen können.Gestern bei meiner Rückreise ist mir noch eine Frage eingefallen, wie man dem Installer weitere Installationsordner vorgeben kann. Es gibt dort zwar Vorschläge aber gibt es auch andere Möglichkeiten?