Laden...

exe-Datei geht auf anderen Computer nicht?

Erstellt von my_csharp vor 17 Jahren Letzter Beitrag vor 17 Jahren 5.588 Views
M
my_csharp Themenstarter:in
9 Beiträge seit 2006
vor 17 Jahren
exe-Datei geht auf anderen Computer nicht?

Ich vewende die Programmiersprache C#.
Entwicklungsumgebung Visual C# 2005 Express.

Ich habe einige Sourcecodes mit eine Oberfläche geschrieben.
Das Programm verwendet noch dazu eine dll Datei. Wenn ich es compeliere wird im bin/debug Ordner eine exe - Datei erstellt.

Wenn ich bei mir am Computer die exe-Datei (dll - Datei ist vorhanden) starte wird eine GUI- Oberfläche geöffnet.

Wenn ich die exe-Datei und die dll-Datei auf einen anderen Computer hinkopiere funktionieren diese nicht mehr wenn ich sie öffne.

Wie kann ich das Problem lösen?

Wenn ich im Scourcecode die dll - routine auskommentiere und kompeliere; und nur die exe-Datei auf einem anderem Computer starte, öffnet Problemlos die GUI-Oberfläche.

2.082 Beiträge seit 2005
vor 17 Jahren

Hallo my_csharp,

lol... .net Framework installieren bzw. updaten wenn 1.1 installiert ist?

Es ist toll jemand zu sein, der nichts von der persönlichen Meinung Anderer hält. - frisch-live.de

L
497 Beiträge seit 2006
vor 17 Jahren

Na, es liegt wohl eher an der fehlenden dll. Die wird nicht mit in die exe gepackt. Di musst Du noch mit auf den anderen Rechner kopieren - oder gleich nen Installer basteln (zu Setup Projekt müsste sich hier auch einiges in der Suche finden lassen).

Sarkusmus ist, wenn nichts mehr hilft, außer Lachen.

M
my_csharp Themenstarter:in
9 Beiträge seit 2006
vor 17 Jahren
Mir ist noch etwas unklar

die .net Framework ist im letzten stand
Framework 2.0

welche fehlenden dll?
Du meinst die dll, die mit der exe-Datei arbeitet.

Wie soll ich die dll-datei in eine exe-Datei packen?

Wie kann ich im csharp einen Installer erstellen??

W
343 Beiträge seit 2006
vor 17 Jahren

Hallo my_csharp,

Wie soll ich die dll-datei in eine exe-Datei packen?

Wie kann ich im csharp einen Installer erstellen??

Hast du mal Hier geguckt??

Willy

C#, einfach geil 8)

M
my_csharp Themenstarter:in
9 Beiträge seit 2006
vor 17 Jahren
Ich benötige eine Antwort

ja es ist eine lustige Webseite.
Aber ich brauche trotzdem eine Antwort im Forum.

L
497 Beiträge seit 2006
vor 17 Jahren

Original von my_csharp
Aber ich brauche trotzdem eine Antwort im Forum.

Warum?

Sarkusmus ist, wenn nichts mehr hilft, außer Lachen.

T
68 Beiträge seit 2006
vor 17 Jahren

Wieso so kompliziert?
Kopier die Dll einfach mit der Exe mit.
Außerdem kannst dann im Programm überprüfen ob die dlls vorhanden sind oder nicht.
Einen Installer kannst eh machen, der dann die dlls mit imporitert.
Aber das hat nicht so viel mit c# zu tun sondern eher mit Visual studio. Keine Ahnung ob die express version sowas inkludiert hat.

W
343 Beiträge seit 2006
vor 17 Jahren

Hallo my_csharp,

Wieso so kompliziert?

Lesen und verstehen was da beschrieben ist 🙂

Was auf der Webseite beschrieben ist, ist genau was du brauchst wenn du ein Installer erstellen willst.

Was TiTime gesagt hat, ist auch richtig, denn mit dem Installer, wird dein dll mitgenommen, da brauchst du nicht jedesmal die exe und die dll zu kopieren.

Willy

C#, einfach geil 8)

L
497 Beiträge seit 2006
vor 17 Jahren

Original von willy
Was TiTime gesagt hat, ist auch richtig, denn mit dem Installer, wird dein dll mitgenommen, da brauchst du nicht jedesmal die exe und die dll zu kopieren.

Ja, das habe ich auch schon in meinem ersten Beitrag gesagt. Ich weiß nicht, wo das Problem ist. Dll kopieren will my_csharp offenbar nicht (sonst hätte er es ja getan) und die Anleitung zum Setup-Erstellen will er sich auch nicht durchlesen. Da bleiben dann nicht mehr so viele Möglichkeiten.

Sarkusmus ist, wenn nichts mehr hilft, außer Lachen.

3.170 Beiträge seit 2006
vor 17 Jahren

Hallo,
my_csharp schreibt doch:

Wenn ich die exe-Datei und die dll-Datei auf einen anderen Computer hinkopiere funktionieren diese nicht mehr wenn ich sie öffne.

Also vermute ich das Problem eher woanders...
Vielleicht hat diese dll noch andere Abhängigkeiten? Wo kommt sie denn her? Kannst Du da vielleicht etwas genauer werden, my_csharp?

Non quia difficilia sunt, non audemus, sed quia non audemus, difficilia sunt! - Seneca

1.373 Beiträge seit 2004
vor 17 Jahren

funktionieren diese nicht mehr

Das ist übrigens nicht wirklich eine ausreichende Fehlerbeschreibung. Wenn ich in einer Werkstatt anrufe und sage "Mein Auto funktioniert nicht mehr" wird kaum jemand in der Lage zu sein, mir zu helfen.

  • Was machst du genau?
  • Was für eine Fehlermeldung tritt auf?

Grüße,
Andre

M
my_csharp Themenstarter:in
9 Beiträge seit 2006
vor 17 Jahren

Antwort für MarsStein
Die dll-Datei verwendet keine anderen dll's
Wenn ich im Sourcecode alle dll-deklarationen und funktionen auskommentiere, und neu kompiliere. -> Dann funktioniert die exe-Datei auch am anderen Computer wenn diese hinkopiere und starte.

Antwort für vizone:
Es kommt keine Fehlermeldung wenn ich die exe-Datei starte. Es kommt einfach kein GUI Oberfläche.

Ich habe eine exe-Datei und eine dll-Datei auf meinem Computer, diese sind in einem Ordner, wenn ich eine exe-Datei starte kommt eine GUI-Oberfläche.

Wenn ich diese Dateien(exe,dll) euch geben würde, und ihr würdet die exe-Datei starten kommt kein GUI - Oberfläche.
Ich weiss nicht warum dass so ist, ich weiss nur das es nicht funktioniert, mehr weiss ich auch nicht.

Normalerweise wenn ich mit C++, Visual Basic oder C# mit MS Visual Studio programmiere und den Scourcecode compeliere wird eine exe-Datei erstellt,
(ob eine dll-Datei verwendet wird oder nicht).

Wenn ich exe und die dll Dateien auf einen anderen Computer hinkopiere müsste sie funktionieren. Tut sie aber nicht.

3.170 Beiträge seit 2006
vor 17 Jahren

Hallo,
dashört sich alles ziemlich merkwürdig an.

Es kommt keine Fehlermeldung wenn ich die exe-Datei starte. Es kommt einfach kein GUI Oberfläche.

Versuch mal, den gesamten Code innerhalb Main() in einen try-catch-Block zu stecken, es müßte jazumindest irgendeine Exception fliegen...


public static void Main(string[] args)
{
  try
  {
    // Dein bisheriger Code in Main
  }
  catch(Exception e)
  {
    MessageBox.Show(e.ToString());
  }
}

Vielleicht kommst Du dann der Sache auf die Spur.

EDIT:
Ich schreibe das nur so, weil es sich um die Main()-Funktion handelt.
Es empfiehlt sich im allgemeinen nicht, die MessageBox zum Debuggen heranzuziehen, v.a. wenn man mit mehreren Threads arbeitet. Da können sehr seltsame Effekte auftreten.

Non quia difficilia sunt, non audemus, sed quia non audemus, difficilia sunt! - Seneca

M
my_csharp Themenstarter:in
9 Beiträge seit 2006
vor 17 Jahren

Das Programm ist nicht in threads geschrieben.

Ich hab nur in main-Methode try-catch Block hineingeschrieben.

Den Code hab ich kompeliert und auf meinem Computer die exe-Datei ausgeführt.
Es funktioniert ohne Fehlermeldung.

Und ich habe dann die exe- und die dll- Datei auf einem anderen Computer kopiert und ausgeführt.
Es kommt eine Fehlermeldung.

AS3931 ist der Name der exe-Datei
Program ist eine ".cs" - Datei und der Name einer Klasse in dieser Datei.
Main() ist eine Methode in der Klasse "Programm"
Main_win ist der Name einer Klasse, es ist eine Ableitung der Klasse Form.

Diese lautet:
System.Security.SecurityException: System.Security.Permission.SecurityPermission at AS3931.Main_win..ctor()
at AS3931.Program.Main()#
The type of the first permission thar failed was:
System.Security.Permission.SecurityPermission
The Zone of the assembly that failed was:
MyComputer

Das bekomme ich als Fehlermeldung heraus.
Ich weiss nicht, wie ich das Problem lösen soll?

L
497 Beiträge seit 2006
vor 17 Jahren

Mit der Fehlermeldung kannst Du jetzt z.B. hier im Forum nochmal suchen und u.a. folgendes finden: SecurityPermission bei Application.Exit()

Sarkusmus ist, wenn nichts mehr hilft, außer Lachen.

6.862 Beiträge seit 2003
vor 17 Jahren

Was machst du denn im besagten Konstruktor?

Baka wa shinanakya naoranai.

Mein XING Profil.

M
my_csharp Themenstarter:in
9 Beiträge seit 2006
vor 17 Jahren

Welchen Konstruktor?

T
243 Beiträge seit 2006
vor 17 Jahren

Na sicherlich im Main_win-Konstruktor... einen anderen hast Du doch nicht, oder?

M
my_csharp Themenstarter:in
9 Beiträge seit 2006
vor 17 Jahren

Variablen zuweisen.

nichts besonderes

was hat es mit dem Problem zu tun?

6.862 Beiträge seit 2003
vor 17 Jahren

Im Konstruktor tritt ne Security Exception auf, das heißt du machst irgendwas was, wofür du nicht genug Rechte hast. Arbeitest du mit Netzlaufwerken, oder bist auf den Nichtentwicklungsrechten als normaler User eingeloggt und versuchst irgendwo was hinzuschreiben wo du nicht darfst? etc.?

Baka wa shinanakya naoranai.

Mein XING Profil.

M
my_csharp Themenstarter:in
9 Beiträge seit 2006
vor 17 Jahren
Danke für die Antworten

Danke an "Lord Hessia" für den Hinweis bei Microsoft .Net Framework (2.0).

Dort musste ich die Sachen einstellen um die exe- bzw dll-Dateien auch für fremde Computer benutzbar zu machen.

Ich hab es geschafft die die exe- /dll - Dateien am frenden Compter zum laufen zu bringen.

Danke an alle die mir eine Antworten/Hinweise/Tips/etc geschrieben haben.

N
750 Beiträge seit 2004
vor 17 Jahren

Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von **my_csharp **am 11.09.2006 14:23

sorry 4 o/t:

das my_csharp hat mich grade echt verwundert 8o 8o 😉 😉 😉

?( wer suchet, der findet auch! :]

M
my_csharp Themenstarter:in
9 Beiträge seit 2006
vor 17 Jahren
Lösung

Lösung:

Am anderen Computer.
Im WinXP Professional auf Englisch

"Microsoft .NET Framework 2.0 Configuration" starten:

Im "Start"->"Settings"->"Control Panel"->"Administrative Tools"->"Microsoft .NET Framework 2.0 Configuration".

Die Einstellung:

"Console Root"->".NET Framework 2.0 Configuration"->"My Computer"->"Runtime Security Policy"->
->"Machine"->"Code Groups"->"All Code"

Dort kommt man auf "Properties" - Dialogbox.

Dann auf den Tab "Permission Set" klicken.
Und im "Permission Set" - Combbox auf "FullTrust" einstellen und auf den Button Apply und dann Ok
klicken.

Dann funkrioniert auf anderen Computer die exe- mit dll- Datei.

S
285 Beiträge seit 2005
vor 17 Jahren

Gibt es eine Möglichkeit dies programmiertechnisch zu lösen? DAU's ist das zu schwer.

S
1.047 Beiträge seit 2005
vor 17 Jahren

ja gibt es:
http://www.microsoft.com/germany/msdn/library/net/FullTrustFuerAssembliesPerSourcecode.mspx
http://www.microsoft.com/germany/msdn/library/net/FullTrustFuerAssembliesMitCaspolExe.mspx

@my_csharp
ich find es erstmal ne "frechheit" sich als namen den forennamen zu nehmen und als weiteres würde ich dir empfehlen das nächste mal etwas detailierter fehlerbeschreibungen und ähnliches zu posten. dann kann man dir viel besser helfen und vermeidet frage-antwort-spiele 😉

um mal dem problem auf den grund zu gehen, denn ist zwar schön ne lösung zu haben, aber bist du dir denn auch der konsquenzen bewußt die du durch deine änderung machst?

kann es sein das du dein programm auf einem netzlaufwerk ausgeführt hast?

96 Beiträge seit 2006
vor 17 Jahren
Dll

Da fehlen noch .NET Framework 2.0 dll's! Auf dem 2. Rechner einfach .NET Framewor Installieren und dann gehts!

Teamarbeit ist, wenn vier Leute für eine Arbeit bezahlt werden, die drei besser machen könnten, wenn sie nur zu zweit gewesen wären und einer davon krank zu Bett läge.
M
1 Beiträge seit 2006
vor 17 Jahren

Hallo @all
Ich habe dasselbe Problem, dass meine EXE nur auf dem Computer funktioniert wo es erstellt wurde (Falls es helfen sollte, ich benutze Visual Studio 2005).

Ich habe die Artikel meiner Vorredner durchgelesen und habe feststellen müssen, dass .Net installiert sein muss.

Meine Frage geht in die Richtung: Kann man es umgehen?
Ich wollte das Prog. meinem Kollegen geben, da er es auch auf der Arbeit mit eingeschänkten Zugriff starten möchte (evtl. kein .Net installiert), müssen die notwendigen Dateien mit integriert werden. Geht das? Und wenn ja, wie muss ich das machen.
Danke im voraus!

Gruß
mighty

1.433 Beiträge seit 2006
vor 17 Jahren

In Anbetracht von UAC wird sich dies

Nichtentwicklungsrechten als normaler User wohl nicht ändern und dann würd ich so oder so als "normaler" Benutzer entwickeln 😭

Grüsse
Daniel
Space Profile
Wer nicht fragt, der nicht gewinnt

2.082 Beiträge seit 2005
vor 17 Jahren

Hallo mighty,

zu dem Thema gibt es hier schon mehr als genug Beiträge. Bitte SuFu benutzen.

Es ist toll jemand zu sein, der nichts von der persönlichen Meinung Anderer hält. - frisch-live.de

6.862 Beiträge seit 2003
vor 17 Jahren

Und weil es mehr als genug Themen dazu gibt, gibts auch nen FAQ Eintrag 🙂

.net Anwendung ohne installiertes Framework ausführen

Baka wa shinanakya naoranai.

Mein XING Profil.

S
8.746 Beiträge seit 2005
vor 17 Jahren

Original von Sera
Gibt es eine Möglichkeit dies programmiertechnisch zu lösen? DAU's ist das zu schwer.

Die sogenannte Code Access Security soll Administratoren die Möglichkeit geben, die Rechte von Anwendungen zu beschränken, z.B. um bösartige Programme (Trojaner, Viren und Co.) an ihrer schandhaften Arbeit zu hindern. Wenn man das programmiertechnisch lösen könnte, dann wäre dieses Sicherheitskonzept ja ziemlich sinnlos... normalerweise steht aber meines Wissens die Einstellung für die Lokale Zone (also den Rechner) auf Full Trust.