gpt4 book ai didi

c# - 谁能解释为什么我在使用 MathNet.com Numerics Library 时出现 TypeLoad Exception?

转载 作者:行者123 更新时间:2023-11-30 17:15:04 26 4
gpt4 key购买 nike

我在将两个矩阵相乘时得到一个奇怪的 System.Action TypeLoadException,有人可以帮忙吗?

我在 VS2008 中新建了一个项目,32 位,并将目标框架更改为 2.0,包括 MathNet.Numerics.dll 并执行以下代码:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Numerics;
using MathNet.Numerics.Statistics;
using MathNet.Numerics.LinearAlgebra;
using MathNet.Numerics.LinearAlgebra.Double;
using MathNet.Numerics.LinearAlgebra.Double.Factorization;

namespace MathNetTest
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}

private void button1_Click(object sender, EventArgs e)
{
double[,] A = new double[3, 3];

A[0, 0] = 1;
A[0, 1] = 0.2;
A[0, 2] = 1;
A[1, 0] = 1.5;
A[1, 1] = -1.2;
A[1, 2] = 1.1;
A[2, 0] = 0.45;
A[2, 1] = 2.1;
A[2, 2] = -0.76;

Matrix XA = new DenseMatrix(A);
Matrix XB = new DenseMatrix(A);

Matrix C = (Matrix)(XA * XB); // throws a TypeLoadException
}
}
}

最佳答案

Update

MathNet.Numerics requires .NET Framework #4.0 for System.Numerics support.

我在 Mono/MS.NET #4.0 上没有这样的问题(见下面的例子)

这是从 google code 下载的库。

如果我的回答对您没有帮助,请在 GAC 中检查 MathNet 的冲突版本,最好将引用设置为 t

  • 复制本地 = true
  • 具体版本 = true

单声道 2.10.x:

最小的测试程序(控制台应用程序):

using MathNet.Numerics.LinearAlgebra.Double;

public class Program
{
public static void Main(string[] args)
{
double[,] A = new double[3, 3];

A[0, 0] = 1;
A[0, 1] = 0.2;
A[0, 2] = 1;
A[1, 0] = 1.5;
A[1, 1] = -1.2;
A[1, 2] = 1.1;
A[2, 0] = 0.45;
A[2, 1] = 2.1;
A[2, 2] = -0.76;

Matrix XA = new DenseMatrix(A);
Matrix XB = new DenseMatrix(A);

Matrix C = (Matrix)(XA * XB); // throws a TypeLoadException
}
}

编译为

dmcs -optimize+ -reference:MathNet.Numerics.dll test.cs

运行良好

Win64 MS.NET 4.0:

更新 在 VS2010 (WinXP 64) 上也没有问题:

T:\lib\Net40>csc test.cs -reference:MathNet.Numerics.dll
Microsoft (R) Visual C# 2010 Compiler version 4.0.30319.1
Copyright (C) Microsoft Corporation. All rights reserved.


T:\lib\Net40>.\test.exe

关于c# - 谁能解释为什么我在使用 MathNet.com Numerics Library 时出现 TypeLoad Exception?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8242496/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com