Code: Select all
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.IO;
using System.Linq;
using System.Reflection;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using Dummy;
namespace TestDummyDLL
{
public partial class Form1 : Form
{
public Form1()
{
AppDomain.CurrentDomain.AssemblyResolve += new ResolveEventHandler(ResolveMissingDll);
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
var dummy = new Dummy.Dummy();
dummy.Print();
}
private static Assembly ResolveMissingDll(object sender, ResolveEventArgs args)
{
string baseDirectory = AppDomain.CurrentDomain.BaseDirectory;
string TeklaVersion = "2023"; // Tekla version will be retrieved by looking up running process.
string dllsFolder = Path.Combine(baseDirectory, TeklaVersion);
string assemblyName = new AssemblyName(args.Name).Name + ".dll";
string assemblyPath = Path.Combine(dllsFolder, assemblyName);
if (File.Exists(assemblyPath))
{
return Assembly.LoadFrom(assemblyPath);
}
return null;
}
}
}
Ich habe BindingRectirects in der App.config -Datei für jede TEKLA -Strukturenversion hinzugefügt , aber leider wird es nicht gelöst, da die Referenz, die ich hinzugefügt habe (um die Methoden zu verwenden) als primär angesehen wird und stattdessen verwendet wird. < /p>
Code: Select all
< /p>