2013-06-24 1 views
2

Je connais cette Question a été posée avant mais pas dans ce contexte!Référence Assembly in app.config

J'ai une application WPF (tierce partie) qui me donne la possibilité d'ajouter un ResourceDictionary XAML, donc j'ai créé une classe ClassLibrary avec une classe qui implémente l'interface ICommand et appelle un WebService dans la méthode Execute .

Maintenant, je veux attacher cette commande à un contrôle dans l'application!

Ceci est mon ResourceDictionary:

 <ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
         xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
         xmlns:iet="clr-namespace:iETSolutions.Enterprise.WorkCenter.Controls;assembly=iETSolutions.Enterprise.WorkCenter.Controls" 
         xmlns:custom="clr-namespace:Custom.Test;assembly=Custom.Test"> 
       <Style TargetType="{x:Type Button}"> 
        <Style.Triggers> 
         <DataTrigger Binding="{Binding RelativeSource={RelativeSource Self}, Path=Name}" Value="SearchButton"> 
          <Setter Property="Template"> 
           <Setter.Value> 
            <ControlTemplate TargetType="{x:Type Button}"> 
             <Grid> 
              <Button Command="{StaticResource cmd}" CommandParameter="{Binding ElementName=SearchTextBox, Path=Text}"> 
               <Image Source="pack://application:,,,/iETSolutions.Enterprise.WorkCenter;component/Images/PNG/iET_search.png" /> 
              </Button> 
             </Grid> 
            </ControlTemplate> 
           </Setter.Value> 
          </Setter> 
         </DataTrigger> 
        </Style.Triggers> 
       </Style> 
</ResourceDictionary> 

donc cela fonctionne comme le charme, si j'ajouter mon Custom.Test.dll au GAC mais si je tente de faire référence à la DLL du app.config le CommandCall échoue ...

Voici ce que j'ai essayé dans le App.config pour faire référence à l'Assemblée:

<runtime> 
    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">  
     <dependentAssembly> 
     <assemblyIdentity name="Custom.Test" publicKeyToken="314daa73fc3fb7cf" culture="neutral"/> 
     <codeBase version="1.0.0.0" href="http://localhost/Custom/Custom.Test.dll" /> 
     </dependentAssembly> 
    </assemblyBinding> 
    </runtime> 

est-il possible que je peux obtenir ce travail sans avoir besoin de mettre ma commande DLL dans le GAC?

Pour le RollingOut de la demande, il serait beaucoup plus facile d'avoir le refernce dans le App.config ...

Répondre

2

Avez-vous essayé de mettre Custom.Test.DLL dans le même répertoire où vit exécutable de l'application?

+0

non n'a pas essayé cela ... comment dois-je référencer le fichier dans le app.config si je le mets dans le même répertoire? – makim

+0

n'a même pas eu à référencer le fichier dans le app.config, il suffit de le mettre dans le même répertoire et cela fonctionne! Je ne pensais pas que c'est si simple ^^ Merci – makim

+2

De rien. WPF essaye juste de charger l'assembly, même si vous avez fait Assembly.Load (name) dans le code. Le chargeur d'assembly .NET s'appelle "Fusion". Le processus de chargement commence par le répertoire de l'application, puis passe par un tas d'autres endroits et se termine dans le GAC. Google ".NET Fusion". –