Hallo,
und zwar dreht sich meine Frage eben um XCopy Deployment.
Wie wird dabei eine Art Installation, bzw. Deinstallation durchgeführt?
Nehmen wir zum Beispiel an, dass meiner Anwendung spezielle Dateitypen zugewiesen werden sollen, oder das meine
Anwendung im ContextMenu des Explorers auftauchen soll, etc.. eben alles typischer Beispiele für einen Registry-Eintrag.
Da man ein Programm nun nur noch kopieren muss, müsste man sich dann halt beim ersten Aufruf des Programms selbst um die
Einträge kümmern, soweit kein Problem. Aber was ist beim Löschen? Es wird ja angepriesen, dass man nur noch das Verzeichniss
löschen muss und die Anwendung ist deinstalliert? Wo nehme ich da die Registry-Einträge wieder raus?
Mir ist natürlich sehr wohl bewusst, dass man die Registry nicht mehr benutzen soll, aber gibt es überhaupt einen
vollwertigen Ersatz? Meine Frage dreht sich aber nicht nur im Speziellen um die Registry, könnte genauso gut ein
Dienst sein, den das Programm mit sich bringt.
Wie wird sowas also verwirklicht?
grüße
Meiner Meinung nach ist der größte Vorteil von C# eben, dass es mit .NET entwickelt wurde und
sozusagen das Framework wieder repräsentiert.
So meine ich mal gelesen zu haben, dass es lange Zeit nicht sicher war ob Visual Basic.NET
überhaupt Generics bekommen würde (zwar gibts die jetzt in VB.NET, aber deren Syntax is
sowas von derart abscheulich - eigene Meinung).
Ein anderes Beispiel wäre Mono, Möglichkeit zur Kompilierung von C#-Code gabs von Anfang an,
VB.NET kam erst nach und nach dazu.
grüße
Original von snoopy
Wie sieht es mit Mono aus, auf Linux speziefische Funktionen zuzugreifen? fork, oder exec ? popen? Sprich die Linux speziefischen C funktionen.
Guck dir dazu mal die Klasse Mono.Unix.Syscall an.
Original von Nostalb
Bei mir funktionierts, welche Version verwendest du?
Klappte bei mir ebenfalls, mit Version 0.5.1 und 0.6 nicht, wobei es vor 1/4 Jahr mal geklappt hat ..
edit: Hab grad Version 0.7 installiert, mit der das bereits wesentlich besser funktioniert 🙂 ..
grüße
Falls ich dich richtig verstanden habe, könntest du dein Projekt ja hosten lassen. Bekommst je
nachdem welchen Host du benutzt Dienste wie CVS, Subversion, ich glaub sogar Webspace
mit PHP/MySQL, etc ..
Zwei bekannte Vertreter:
http://sourceforge.net/
http://berlios.de
Du könntest die Projektverwaltung auch selbst aufsetzen,
dazu könntest zum Beispiel trac verwenden.
grüße
Da SharpDevelop auf SourceForge.net gehostet wird, würde ich halt dort zu suchen
beginnen. Wenn dann wirst es dort finden, denke also nicht, dass es bereits raus ist.
http://sourceforge.net/projects/sharpdevelop/
grüße
Hallo,
falls dir für die Arbeit .NET 2.0 zur Verfügung steht, würde ich dir empfehlen mal einen Blick
auf die Klasse OptionalFieldAttribute zu werfen. Ansonsten bleibt dir wohl nichts anderes übrig,
als ISerializable selbst zu implementieren.
grüße
Hallo Tankian,
OT: Wo kaufst du deine PCs? Die Zeiten, in denen man eine Windows-Lizenz mitkaufen "musste", sind doch schon längst vorbei.
Ich bau sie mir in der Regel selbst zusammen, insofern bekomm ich eigentlich nur
mehr Angebote von Werbung etc.. mit. Kann also auch gut sein, dass ich mich irre ..
Dann wird es sich halt tomuc83 nicht zulegen, bzw. all jene Leute die ähnlich
viele Vorurteile haben aber wissen, wie man WindowsXP installiert.
Original von tomuc83:
ich glaub ich werd Lonhorn so lang wie möglich beukutieren!
Und spätestens sobald du dir einen neuen PC kaufst, hast es dann doch wieder. Ich schätze mal
80% der Benutzer is es recht egal, welches Betriebssystem sie vorinstalliert haben, hauptsache
alle bisherigen Spiele und Anwendungen laufen .. und somit ist der Erfolg von Longhorn ja quasi
genauso vorprogrammiert.
Kann übrigens auch nicht bestätigen, dass Longhorn dermaßen unstable ist. Bei mir liefs eigentlich
immer ohne Probleme (außer ich hab mal ein versucht ein anderes .NET Framework zu installieren)
und konnte z.B: sogar meinen Brenner nutzen, hab aber einen etwas älteren Build ..
Hallo,
danke hat bestens funktioniert. Aber warum meine Version nicht, bzw wie
wendet man [MarshalAs(UnmanagedType.LPStruct)] denn sonst an?
grüße
Hallo,
hab heute vergeblich versucht einen Wrapper um eine C-API zu basteln, habe irgendwie Probleme
beim Marshalling schätze ich mal, da die Werte vollkommener Blödsinn sind, aber keine Exception
oder ähnliches auftritt.
Ich hoffe mal, ihr könnt C soweit, das ihr folgenden Code versteht, dürfte aber eigentlich kein Problem sein.
#include <stdlib.h>
#include <stdio.h>
typedef struct {
int pay;
int hours_of_work;
} Employee;
Employee* createEmployee(int pay, int hours_of_work) {
Employee* employee = (Employee*)malloc(sizeof(Employee));
employee->pay = pay;
employee->hours_of_work = hours_of_work;
printf("pay: %i \n", pay);
printf("work: %i \n", hours_of_work);
return employee;
}
void deleteEmployee(Employee* employee) {
free(employee);
}
using System;
using System.Runtime.InteropServices;
[StructLayout(LayoutKind.Sequential)]
internal struct Employee
{
public int Pay;
public int HoursOfWork;
}
public class AppEntry
{
[DllImport("Employee", EntryPoint="createEmployee")]
[return: MarshalAs(UnmanagedType.LPStruct)]
private static extern Employee CreateEmployee(int pay, int hoursOfWork);
[DllImport("Employee", EntryPoint="deleteEmployee")]
private static extern void DeleteEmployee([MarshalAs(UnmanagedType.LPStruct)] Employee employee);
public static void Main() {
Employee e = CreateEmployee(5, 5);
Console.WriteLine("Pay: {0}", e.Pay);
Console.WriteLine("HoursOfWork: {0}", e.HoursOfWork);
DeleteEmployee(e);
}
}
Ausgabe:
pay: -16805528
work: 5
Pay: 154019616
HoursOfWork: 153581768gewünschte Ausgabe:
pay: 5
work: 5
Pay: 5
HoursOfWork: 5
Wo könnte der Fehler liegen?
Schonmal danke.