Autor Beitrag
csharpMorpheus
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 19



BeitragVerfasst: Do 07.01.10 11:52 
Hi.

Ich arbeite mit Dateiverweisen.
Diese sind aber im Projekt unter "Verweise" einzutragen.

Kann ich im Code selber die Verweise dynamisch erstellen?
Bei jedem Kunden sind die Verweisdateien wo anders und der Pfad auf diese Dateien ändert sich somit des öfteren.
Ich möchte dann im Code einfach nur den Pfad ändern können bzw. ihn einfach direkt im code einbinden und nicht
in der Projektmappe an sich!

z.B.
System.Dateiverweis("../ISV/test.dll");

Ich hoffe das ist einigermaßen verständlich.

Danke!
JüTho
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 2021
Erhaltene Danke: 6

Win XP Prof
C# 2.0 (#D für NET 2.0, dazu Firebird); früher Delphi 5 und Delphi 2005 Pro
BeitragVerfasst: Do 07.01.10 12:06 
Die "Verweise" im Projekt beziehen sich auf DLLs, die schon zum Kompilieren und dann beim Ausführen benötigt werden. Wenn sich die Pfade zwischen Entwicklungs- und Anwendungsrechner unterscheiden, gibt es mehrere Möglichkeiten:

1. Es sind sehr wichtige DLLs, die sich selten ändern. Dann können sie mit gacutil im GAC gespeichert werden und stehen ohne Pfadangabe immer zur Verfügung.

2. In allen anderen Fällen sollten sie in Reichweite des aktuellen Programms stehen. Das geht aber nur in Unterverzeichnissen der EXE, dazu kann die app.config erweitert werden:
ausblenden XML-Daten
1:
<probing privatePath="paths"/>					

Erläuterungen und Beispiel siehe SDK-Doku/MSDN/Hilfe unter probing-Element.

Es gibt dazwischen noch andere Möglichkeiten, die sind aber immer kompliziert und dadurch fehleranfällig.

Gruß Jürgen
csharpMorpheus Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 19



BeitragVerfasst: Do 07.01.10 13:04 
Das Projekt befindet sich immer im ISV Ordner vom CRM.
Die DLL's sind auf jedem ClientPC im CRM Ordner enthalten.
Es ist immer der selbe Pfad!

Doch kann der Pfad des CRM sich ändern!
Also wäre ein Zugriff via "../DLL/test.dll" möglich, also nur einen Ordner zurück und in einen anderen Ordner.
Nicht aber den eig. Pfad "c:/..." angeben zu müssen.
Kann ich das nicht eigentlich als Verweis im Projektmanager so angeben?

Vielen Dank
csharpMorpheus Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 19



BeitragVerfasst: Do 07.01.10 14:20 
Also wenn ich nun mit probing arbeite,
so kann ich z.B. mit meinem Programm zusammen im Unterordner (z.B. "DLL") meine dll's mitliefern
und mein Projekt schließt sämtliche in diesem Ordner vorhandenen DLL's in das Projekt als Verweis mit ein ?!

Somit bräuchte ich keine Verweise selber im Projekt tätigen.
Ich nehme die Einstellung in der web.config vor, da es sich um eine aspx.cs anwendung handelt.

Ist das so richtig?
Kha
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 3803
Erhaltene Danke: 176

Arch Linux
Python, C, C++ (vim)
BeitragVerfasst: Do 07.01.10 14:38 
user profile iconcsharpMorpheus hat folgendes geschrieben Zum zitierten Posting springen:
Ist das so richtig?
Nein, es gibt einen Unterschied zwischen den Verweisen beim Kompilieren und dem Auffinden von Assemblies beim Ausführen. Bei Ersterem zählen nur die in der IDE angegebenen Pfade, bei Letzterem zählen diese überhaupt nicht, sondern es wird nach msdn.microsoft.com/d...ibrary/yx7xezcf.aspx verfahren.

PS: Mit codeBase kannst du auch auf übergeordnete Verzeichnisse verweisen.

_________________
>λ=