我试图使用从MATLAB创建一个DLL文件与dotnetbuilder(http://www.mathworks.se/help/dotnetbuilder/ug/create-a-net-component-from-matlab-code.html)..使用.NET 2.0中的DLL .NET 4.5的项目(在调试vshost崩溃)
为了使用DLL,我必须添加一个名为'MWArray.dll'(http://www.mathworks.se/help/dotnetbuilder/ug/integrate-your-net-component-in-a-c-application.html)的matlab dll的参考,并且很遗憾,这个dll似乎只适用于.net 2.0。
我已经能够让我用从MATLAB创建的DLL一个简单的控制台应用程序的唯一途径,是通过执行以下操作:在MATLAB建设时
- 目标的dll的.NET 2.0与 dotnetbuilder。
- 变化.NET使用在我的控制台 应用程序的版本到2.0
如果我不这样做的版本,当我尝试运行该项目的控制台应用程序会崩溃vshost.exe。
我希望能够使用.net 4. +功能,所以配置项目使用.net 2.0是不可接受的。当我得到这个简单的控制台应用程序运行至少.net 4.0,我会试着让它在F#3.0应用程序中工作。
我的计划是这样的:
...
using MathWorks.MATLAB.NET.Arrays;
using makesquare;
namespace Matlabski
{
class Program
{
static void Main(string[] args)
{
try
{
var stuff = new makesquare.MLTestClass();
var res = stuff.makesquare(1, 3);
Console.WriteLine(res[0]);
Console.WriteLine("sdfsdf");
}
catch (Exception e)
{
Console.WriteLine(e);
}
Console.ReadKey();
}
}
}
,我试图编辑app.config文件,以便能够同时处理.NET 2和4:
<?xml version="1.0"?>
<configuration>
<startup useLegacyV2RuntimeActivationPolicy="true">
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5"/>
<supportedRuntime version="v2.0"/>
</startup>
</configuration>
但它不不工作..
是否有可能设置项目,使我可以同时使用.net 2.0和4.5,这将使我的项目工作?或者我必须做些别的使用这个恼人的.net 2.0 dll ..?
我使用:
- VS2013
- MATLAB R2013b(64位)
为什么它会崩溃vshost?你是否附加了一个调试器,并且看到了什么异常?修复 – JaredPar