Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 | Suche | FAQ

Hauptmenü
myCSharp.de
» Startseite
» Forum
» Suche
» Regeln
» Wie poste ich richtig?

Mitglieder
» Liste / Suche
» Wer ist online?

Ressourcen
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Microsoft Docs

Team
» Kontakt
» Cookies
» Spenden
» Datenschutz
» Impressum

  • »
  • Community
  • |
  • Diskussionsforum
Kann man bei Unity irgendwie den Pfad für die zu ladenen Dll's mitgeben?
Howard
myCSharp.de - Member

Avatar #avatar-2751.jpg


Dabei seit:
Beiträge: 85

Themenstarter:

Kann man bei Unity irgendwie den Pfad für die zu ladenen Dll's mitgeben?

beantworten | zitieren | melden

Hallo Leudde,

wir benutzen hier "Microsoft.Practices.Unity" und den Common Service Locator library das funktioniert soweit auch alle wie es sein muss. Nur leider gibt es im zusammenhang mit Access2003 irgendwie Probleme. Da Access das startende Programm ist nimmt sich die ganze Anwendung den Office11 Ordner irgendwie als Startverzeichniss. Da wir die gleichen Probleme auch schon beim "alten" RalfW.Microkernel hatten haben wir beim initialisieren unserer C# Dll's als erstes mal das Environment.CurrentDirectory umgestellt damit immer UNSERER Arbeitspfad genommen wird und ebend NICHT der Office Ordner. Leider interessiert sich Unity irgendwie überhaupt nicht dafür. Die DLL's werden weiterhin im Office Ordner erwartet.
Wir laden die Dll's über eine XML Datei nicht aus dem Code herraus.
Hat irgendwer irgendwie ne Idee??

Howard
private Nachricht | Beiträge des Benutzers
Howard
myCSharp.de - Member

Avatar #avatar-2751.jpg


Dabei seit:
Beiträge: 85

Themenstarter:

beantworten | zitieren | melden

als Nachtrag: auch

AppDomain.CurrentDomain.SetData("APPBASE",@"....");
hat nix gebracht

Howard
private Nachricht | Beiträge des Benutzers
dN!3L
myCSharp.de - Experte

Avatar #avatar-2985.png


Dabei seit:
Beiträge: 3138

beantworten | zitieren | melden

Mal Application.StartupPath probiert?
EDIT: Arg, kann man ja gar nicht drauf schreiben...

Was passiert denn, wenn versucht wird, die Assemblies aus dem falschen Verzeichnis zu laden? Gibt es eine FileNotFound-Exception? Dann könnte dir das AppDomain.AssemblyResolve-Ereignis (System) helfen.

Gruß,
dN!3L
Dieser Beitrag wurde 2 mal editiert, zum letzten Mal von dN!3L am .
private Nachricht | Beiträge des Benutzers
0815Coder
myCSharp.de - Member



Dabei seit:
Beiträge: 770

beantworten | zitieren | melden

Kannst du den probing Pfad auf deinen erweitern?

<configuration>
   <runtime>
      <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
         <probing privatePath="bin;bin2\subbin;bin3"/>
      </assemblyBinding>
   </runtime>
</configuration>

siehe MSDN
loop:
btst #6,$bfe001
bne.s loop
rts
private Nachricht | Beiträge des Benutzers
Howard
myCSharp.de - Member

Avatar #avatar-2751.jpg


Dabei seit:
Beiträge: 85

Themenstarter:

beantworten | zitieren | melden

@0815Coder: gute Idee aber das ganze gilt ja nur für Unterverzeichnisse der Aktuellen Ordners...der ja wie bekannt ...Office11 ist...also das geht so leider nich...
Habe allerdings in der Hilfe noch eine weitere Möglichkeit entdeckt, wie man in der Config sagen kann, wo die entsprechende Assembly liegt:
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
	<runtime>
		<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
			<dependentAssembly>
				<assemblyIdentity name="Microsoft.Practices.Unity.Configuration" culture="neutral" />
				<codeBase version="1.2.0.0" href="file://D:\Entwicklung\integration\bin\Microsoft.Practices.Unity.Configuration.dll"/>
			</dependentAssembly>
		</assemblyBinding>
	</runtime>
	<configSections>
		<section name="unity" type="Microsoft.Practices.Unity.Configuration.UnityConfigurationSection, Microsoft.Practices.Unity.Configuration" />
	</configSections>
	<unity>
		<containers>
			<container>
				<types>
					<type type="RED.C.Information.IInformation, RED.C.Information" mapTo="RED.Information.Information, RED.Information"/>
				</types>
			</container>
		</containers>
	</unity>
</configuration> 

Nach dem Laden der Config bekomme ich auch Zugriff auf die Section "ms.unity". Allerdings hat diese jetzt nicht den Type "Microsoft.Practices.Unity.Configuration" sondern "System.Configuration.DefaultSection". Somit kann Unity mit der Config nix anfangen. Offensichtlich ist die Struktur der Config-XML so nicht ok.
Dieser Beitrag wurde 6 mal editiert, zum letzten Mal von Howard am .
private Nachricht | Beiträge des Benutzers