Das gibt es doch nicht...
Im Netz findet man das Problem so oft, aber scheinbar hat keiner eine Lösung...?
???????????????????????????????????????????????
Weiß denn keiner was ich meine, oder weiß wirklich keiner eine Antwort!? 🙁
Hallo zusammen,
ich habe mit VS2005 bzw. 2008 einige Anwendungen mit C# geschrieben.
Klappt alles prima.
Jetzt habe ich zusätzlich ein eigenes Setupprogramm geschrieben, in dem man auswählen soll was man installieren möchte.
Jetzt will ich das Setup-Programm von der CD starten und dabei soll überprüft werden ob .Net-Framework und WindowsInstaller schon installiert ist, oder noch benötigt wird.
Wenn alles schon vorhanden ist, klappt alles prima...
Wenn ich jetzt aber unter den Projekt-Eigenschaften -> Veröffenlichen -> Erforderliche Komponenten folgendes einstelle:
...und sage dann noch das die "erforderlichen Komponenten" von selben Speicherort wie die Anwendung downgeloadet werden soll (was bei mir ja dann die CD sein soll), kommen immer die Fehlermeldungen:
Der Installationspfad für die erforderlichen Komonenten wurde nicht auf "Webseite zur Bereitstellung der Komponenten festgelegt", und die Datei DotNetFX/1instmsia.exe in Element .Net Framework 2.0 konnte auf dem Datenträger nicht gefunden werden.
Und das gleiche noch mal für WindowsInstaller.
Weiß einer was ich machen kann oder muss. Ich hab schon alles ausprobiert. Die Daten in das gleiche Verzeichnis gelegt - die Daten exakt so genannt (Pfad und Name) wie Sie in der Fehlermeldung stehen...
Ich will aber nicht das die Koponenten aus dem Internet geladen werden müssen - bei dieser Einstellung in den Eigenschaften funktioniert es nämlich einwandfrei.
Ich hab zwar schon öffter von diesem Problem gehört, aber eine funktionierende Anwort hab ich hier und auch sonst noch nirgens gefunden.
Hallo,
.Net Framework ist ja kein Problem.
Kannst du mir auch sagen wo ich da Infos zu bekomme.
Ich will ja nur beeinflussen wo die Dateien installiert werden sollen und evtl. zusätzlich eine Datei in ein anderes Verzeichnis kopieren.
Danke schon mal.
Ohhh Schei.....
Mein Fehler! Hab zum zählen das falsche Objekt benutzt.
ABER: Geiiiiiiil - es funktioniert.
@Borg: Super Klasse. Wenn ich dir eine Note geben könnte - es wäre eine 1+++
Hast du vielleicht auch Ahnung hiervon:
Kann ich beim Setup meiner Anwendung Dateien in anderen Verzeichnisse ablegen?
Ja, danke für die Tipps. Ich muss mal etwas praktikabler denken.
Ich überprüfe das gleich noch mal, aber dass mit den leeren Objekten im Array kann eigentlich nicht sein.
Vorher hatte ich ja meine nur 2 gewünschten Seiten - wenn auch nur in der Vorschau.
Aber wie gesagt, ich überprüfe das gleich.
Hallo, ich hab den Code von Borg genommen und angepasst.
Super vielen Dank. Funzt prima.
Allerdings hab ich jetzt ein weiteres Problem.
Der Text ist eigentlich nach 2 Seiten zu Ende. Es werden jetzt aber immer noch 2 Leerseiten hinterhergezogen. Also was heißt leer. Überschrift und Seitenzahl ist zu sehen.
Ich hab den derzeitigen Code noch mal hier:
private int Seite = 1;
private int PrintedObjekte = 0;
private void pDocStatistik_PrintPage(object sender, PrintPageEventArgs e)
{
Graphics g = e.Graphics;
Font fontNormal = new Font("Arial", 10, FontStyle.Regular);
float fontNormalHeight = fontNormal.GetHeight(g);
Font fontBold = new Font("Arial", 10, FontStyle.Bold);
float fontBoldHeight = fontBold.GetHeight(g);
Color color = Color.Black;
SolidBrush myBrush = new SolidBrush(color);
Pen myPen = new Pen(myBrush);
float XStart = g.VisibleClipBounds.X;
float YStart = g.VisibleClipBounds.Y;
float Width = g.VisibleClipBounds.Width;
float Height = g.VisibleClipBounds.Height;
float YPos = YStart + 2 * fontBoldHeight;
StringFormat Right = new StringFormat();
Right.Alignment = StringAlignment.Far;
StringFormat Center = new StringFormat();
Center.Alignment = StringAlignment.Center;
// überschrift
g.DrawString("Überschrift", fontBold, myBrush, XStart, YStart);
g.DrawString(DateTime.Now.Date.ToShortDateString(), fontBold, myBrush, XStart + Width, YStart, Right);
g.DrawLine(myPen, XStart, YStart + (float)1.5 * fontBoldHeight, XStart + Width, YStart + (float)1.5 * fontBoldHeight);
if (Seite == 1)
{
float XPosSpalte1 = XStart;
float XPosSpalte2 = XStart + 220;
float XPosSpalte3 = XStart + 300;
float XPosSpalte4 = XStart + 380;
// Statistik
g.DrawString("Spalte X", fontBold, myBrush, XPosSpalte2, YPos);
g.DrawString("Spalte Y", fontBold, myBrush, XPosSpalte3, YPos);
g.DrawString("Spalte Z", fontBold, myBrush, XPosSpalte4, YPos);
YPos += fontNormalHeight;
g.DrawString("Zeile 1: ", fontBold, myBrush, XPosSpalte1, YPos);
g.DrawString("blabla", fontBold, myBrush, XPosSpalte2, YPos);
g.DrawString("blabla", fontBold, myBrush, XPosSpalte3, YPos);
g.DrawString("blabla", fontBold, myBrush, XPosSpalte4, YPos);
YPos += fontNormalHeight;
g.DrawString("Zeile 2: ", fontBold, myBrush, XPosSpalte1, YPos);
g.DrawString("blabla", fontBold, myBrush, XPosSpalte2, YPos);
g.DrawString("blabla", fontBold, myBrush, XPosSpalte3, YPos);
g.DrawString("blabla", fontBold, myBrush, XPosSpalte4, YPos);
YPos += fontNormalHeight;
g.DrawLine(myPen, XStart, YPos, XStart + Width, YPos);
YPos += (float)0.5 * fontNormalHeight;
}
// maximale zu beschreibene Position
float MaxPos = YStart + Height - (float)1.5 * 2 * fontBoldHeight;
// erste Spalte
float XPos = XStart;
float YPosGemerkt = YPos;
while ((PrintedObjekte < m_Objekte.Length) && (YPos < MaxPos))
{
g.DrawString(m_Objekte[PrintedObjekte], fontNormal, myBrush, XPos, YPos);
PrintedObjekte++;
YPos += fontNormalHeight;
}
// zweite Spalte
XPos = XStart + Width / 2;
YPos = YPosGemerkt;
while ((PrintedObjekte < m_Objekte.Length) && (YPos < MaxPos))
{
g.DrawString(m_Objekte[PrintedObjekte], fontNormal, myBrush, XPos, YPos);
PrintedObjekte++;
YPos += fontNormalHeight;
}
// Linie und Seitenzahl ausgeben
g.DrawLine(myPen, XStart, MaxPos + (float)0.5 * fontBoldHeight, XStart + Width, MaxPos + (float)0.5 * fontBoldHeight);
g.DrawString("Seite " + Seite.ToString(), fontBold, myBrush, XStart, MaxPos + fontBoldHeight);
// noch eine Seite benötigt?
if (PrintedObjekte < m_Objekte.Length)
{
Seite++;
e.HasMorePages = true;
}
else
{
e.HasMorePages = false;
}
}
@Borg:
Das sieht bei mir in der Entwicklungsphase immer so chaotisch aus, aber ich versuch deinen Code gleich mal aus.
Das eigentliche Problem ist damit aber glaube ich nicht behoben.
@FZelle:
Da hast du wohl recht, aber noch mal kurz zu meiner Problemerklärung. Im Prinzip hab ich 2 Buttons: 1. Vorschau (aus der ich dann drucken kann), 2. Direkt drucken
Das Problem das nur die Überschrift ausgedruckt wird, habe ich auch beim direkten Drucken. Da wird ja definitiv nur einmal gedruckt - oder hab ich was verpasst?
Hallo zusammen,
ich hab da noch eine Frage?
Ich benutze MV C# Express. Wenn ich mein Projekt veröffentliche, werden ja Dateien in einem von mir angegebenen Verzeichnis erstellt.
Wenn ich dann die SETUP.exe ausführe, wird das Programm installiert.
Wie kann ich jetzt beeinflussen WO die Dateien installiert werden.
Bei mir erstellt er anscheinend willkühlich unter ..\Programme\ einen Ordner und schiebe die Daten da rein.
Kann ich dann evtl. beim setup auch eine einzelne Datei in ein anderes Verzeichnis kopieren?
Fragen über Fragen - wer kennt die Antworten?
...
Das ist der Code um den es geht.
Ich hab extra mal viel rein geschrieben - vielleicht hilft es dem ein oder andern noch.
Ich habe also ein Objekt mit sagen wir mal 1000 Einträgen und will diese in 2 Spalten ausdrucken.
Es funktioniert in der Vorschau wie gesagt perfekt, aber beim Ausdrucken kommt außer der Überschrift nichts.
Hallo zusammen,
ich hab da ein kleines Problem.
Ich will eine Seite drucken, die eine Überschrift und den Inhalt eines String-Arrays ausgibt.
-> Das Ganze ist im Prinzip eine Tabelle mit Überschrift.
Ich habe jetzt 2 Möglichkeiten eingebaut:
Beim Programmieren hab ich natürlich immer den PrintPreviewDialog benuzt. Ich habs dann auch hin bekommen die Seite, oder auch mehrere Seiten, genau so wie ich das wollte angezeigt zu bekommen.
Jetzt wollt ich allerdings mal eine Seite wirklich ausdrucken - Ausser der Überschrift ist aber nichts zu sehen.
Problem:
In der Vorschau ist also alles perfekt zu sehen, aber wenn ich das Dokument wirklich drucken will, dann sind nur die "statischen" Strings zu sehen, aber nicht die "dynamisch" (aus dem Objekt) erzeugten.
Weiß jemand wodrann das liegt?
Hallo,
ich möchte eine ListView die sich in meinem Dialog befindet ausdrucken.
Hat jemand eine Ahnung wie das geht?
Eine CSV-Datei die ich mir aus dieser LiestView erzeuge auszudrucken ist ja kein
Problem, aber das Format einer solchen Datei ist ja nicht besondert ansehnlich.
Also würde ich einfach gerne die ListView direkt ausdrucken.
Natürlich kann ich die CSV-Datei mit Excel öffnen und ausdrucken, aber das ist
ja nicht die saubere Variante.
Danke schon mal für eure Hilfe.
Gruß Ike
Hallo zusammen,
ich will eine HTML-Seite mit den Zeilen/Spalten einer ListView bestücken.
Ich hab allerdings keine Ahnung wie ich die Inhalte der ListView in die HTML-Seite
bekommen soll. Muss man da mit PHP dran, oder wie...?
Danke schon mal.
Gruß Ike