Sono abbastanza nuovo in C# e sto riscontrando un problema durante il caricamento di una libreria nel mio programma. Im cercando di eseguire this esempio in Visual Studio, ma sto ottenendo un errore:TypeLoadException non gestito in C#
TypeLoadException was unhandled. Can't load type SVM.Problem from assembly SVM, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null.
Questo è ciò che il mio codice è simile:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using SVM;
namespace SVM
{
class Program
{
static void Main(string[] args)
{
//First, read in the training data.
Problem train = Problem.Read("a1a.train");
Problem test = Problem.Read("a1a.test");
//For this example (and indeed, many scenarios), the default
//parameters will suffice.
Parameter parameters = new Parameter();
double C;
double Gamma;
//This will do a grid optimization to find the best parameters
//and store them in C and Gamma, outputting the entire
//search to params.txt.
ParameterSelection.Grid(train, parameters, "params.txt", out C, out Gamma);
parameters.C = C;
parameters.Gamma = Gamma;
//Train the model using the optimal parameters.
Model model = Training.Train(train, parameters);
//Perform classification on the test data, putting the
//results in results.txt.
Prediction.Predict(test, "results.txt", model, false);
}
}
}
Ho aggiunto la DLL come un riferimento tramite solution explorer. Cosa potrebbe andare storto?
Ho avviato un nuovo progetto, aggiunto la dll come riferimento, ho eseguito il progetto e ora tutto funziona. Molto frustrante non sapere cosa è andato storto, ma sospetto che abbia qualcosa a che fare con il nome del progetto e il nome della dll sia lo stesso. Grazie dell'aiuto!
È necessario dai dettagli quali sono gli assembly in Program e Problema in. Quale linea causa l'eccezione. In quale piattaforma sono compilati tutti gli assembly, la versione dei riferimenti è specifica? Hai provato a eliminare il cestino e le directory obj e ricostruire? –
Cosa intendi con il montaggio? Non vi è alcuna riga menzionata che causa l'errore, purtroppo, l'EXE e le DLL – Freek8
si chiamano assiemi. –