示例#1
0
    WeaverHolder InitialiseWeaver(WeaverEntry weaverConfig)
    {
        Logger.LogDebug($"Weaver '{weaverConfig.AssemblyPath}'.");
        Logger.LogDebug("  Initializing weaver");
        var assembly   = LoadWeaverAssembly(weaverConfig.AssemblyPath);
        var weaverType = assembly.FindType(weaverConfig.TypeName);

        var delegateHolder = weaverType.GetDelegateHolderFromCache();
        var weaverInstance = delegateHolder();
        var weaverHolder   = new WeaverHolder
        {
            Instance = weaverInstance,
            Config   = weaverConfig
        };

        if (FodyVersion.WeaverRequiresUpdate(assembly, out var referencedVersion))
        {
            Logger.LogWarning($"Weavers should reference at least the current major version of Fody (version {FodyVersion.Major}). The weaver in {assembly.GetName().Name} references version {referencedVersion}. This may result in incompatibilities at build time such as MissingMethodException being thrown.", "FodyVersionMismatch");
            weaverHolder.IsUsingOldFodyVersion = true;
        }

        weaverHolder.FodyVersion = referencedVersion;

        SetProperties(weaverConfig, weaverInstance);
        return(weaverHolder);
    }
示例#2
0
 public void FindFodyHelpersReference()
 {
     Assert.Equal("FodyHelpers", FodyVersion.FindFodyHelpersReference(GetType().Assembly).Name);
 }