2016-08-29 2 views
0

ich diesen Code verwenden, um zu starten (nach innen Produkt-Knoten definiert) einer einfachen benutzerdefinierten AktionWiX nicht benutzerdefinierte Aktion mit .NET Framwork 4

<!-- Run as admin --> 
<Property Id="Privileged" Value="1" /> 
<!-- .NET Framework must be 4.6--> 
<PropertyRef Id="WIX_IS_NETFRAMEWORK_46_OR_LATER_INSTALLED" /> 
<Condition Message="You must install Microsoft .NET Framework 4.6 or higher."> 
    <![CDATA[Installed OR WIX_IS_NETFRAMEWORK_46_OR_LATER_INSTALLED]]> 
</Condition> 

<Binary Id="Ctav8.CustomAction.CA.dll" 
     SourceFile="$(var.Ctav8.CustomAction.TargetDir)Ctav8.CustomAction.CA.dll" /> 

<CustomAction Id="CustomAction1" 
       Return="check" 
       Execute="immediate" 
       BinaryKey="Ctav8.CustomAction.CA.dll" 
       DllEntry="CustomAction1" /> 

<InstallExecuteSequence> 
    <Custom Action="CustomAction1" After="InstallFiles" /> 
</InstallExecuteSequence> 

Und das ist die einfache benutzerdefinierte Aktion mit seiner Konfiguration

zu starten
public class CustomActions 
{ 
    [CustomAction] 
    public static ActionResult CustomAction1(Session session) 
    { 
     session.Message(InstallMessage.Warning, new Record 
     { 
      FormatString = "test" 
     }); 

     return ActionResult.Success; 
    } 
} 

<?xml version="1.0" encoding="utf-8" ?> 
<configuration> 
    <startup useLegacyV2RuntimeActivationPolicy="true">  
     <supportedRuntime version="v2.0.50727"/> 
     <supportedRuntime version="v4.0"/> 
    </startup> 
</configuration> 

Hinweis: Die Konfigurationsdatei heißt 'CustomAction.config' und ihre Build-Aktion wird auf 'Inhalt' gesetzt. Ich habe versucht, 'useLegacyV2RuntimeActivationPolicy' auf wahr und falsch zu setzen, aber das Ergebnis ist immer noch das gleiche.

Wenn ich das .NET Framework des benutzerdefinierten Aktionsprojekts auf 3.5 ändere, funktioniert dieser Code einwandfrei.

Was ist los?

Dank

Antwort

0

sieht My Custom Config wie diese

<startup useLegacyV2RuntimeActivationPolicy="true">  
    <supportedRuntime version="v4.0" /> 
    <supportedRuntime version="v2.0.50727"/> 
</startup> 

Und es funktioniert mit Ziel .Net 4.5. Vielleicht müssen Sie nur die unterstütztenRuntime-Tags spiegeln.

0

I gelöst

<configuration> 
    <startup useLegacyV2RuntimeActivationPolicy="true"> 
     <supportedRuntime version="v4.0"/> 
    </startup> 
</configuration> 

Verwendung Das funktioniert mit .NET Framework 4.6.1

Verwandte Themen