【发布时间】:2016-09-15 01:02:18
【问题描述】:
我正在尝试将 Web 应用程序从 dnx451 升级到 dotnetcoreapp1.0。
这个应用程序需要使用一个旧的库(至少我认为它是一个库)。这个 sn-p 曾经与 DNX 一起工作,但现在我已经升级了。
//COMPILE ERROR: 'Type' does not contain a definition for 'GetTypeFromProgID'
var comType = Type.GetTypeFromProgID("ABCCrypto2.Crypto");
var abc = Activator.CreateInstance(comType);
var license = _config["AbcCrypto:License"];
var password = _config["AbcCrypto:Password"];
comType.InvokeMember("License", System.Reflection.BindingFlags.SetProperty, null, abc, new object[] { license });
comType.InvokeMember("Password", System.Reflection.BindingFlags.SetProperty, null, abc, new object[] { password });
var hashed = comType.InvokeMember("Encrypt", System.Reflection.BindingFlags.InvokeMethod, null, abc, new object[] { data });
有什么想法或解决方法吗?谢谢!
编辑:
上面的代码位于一个类库中,与引用它的 ASP.NET Core Web 应用程序分开。这是类库的 project.json:
"buildOptions": {
"emitEntryPoint": false
},
"dependencies": {
"MyApp.Data": "1.0.0-*",
"System.Net.Mail": "1.0.0-rtm-00002",
"System.Runtime": "4.1.0"
},
"frameworks": {
"netcoreapp1.0": { }
}
这是 ASP.NET Core Web 应用程序的 project.json:
"buildOptions": {
"emitEntryPoint": true,
"preserveCompilationContext": true
},
"dependencies": {
"MyApp.Services": "1.0.0-*",
"Microsoft.AspNetCore.Authentication.Cookies": "1.0.0",
"Microsoft.AspNetCore.Authorization": "1.0.0",
"Microsoft.AspNetCore.Diagnostics": "1.0.0",
"Microsoft.AspNetCore.Hosting": "1.0.0",
"Microsoft.AspNetCore.Hosting.Abstractions": "1.0.0",
"Microsoft.AspNetCore.Http.Extensions": "1.0.0",
"Microsoft.AspNetCore.Localization": "1.0.0",
"Microsoft.AspNetCore.Mvc": "1.0.0",
"Microsoft.AspNetCore.Routing": "1.0.0",
"Microsoft.AspNetCore.Server.IISIntegration": "1.0.0",
"Microsoft.AspNetCore.Server.Kestrel": "1.0.0",
"Microsoft.AspNetCore.Session": "1.0.0",
"Microsoft.AspNetCore.StaticFiles": "1.0.0",
"Microsoft.Extensions.Caching.SqlServer": "1.0.0",
"Microsoft.Extensions.Logging.Console": "1.0.0",
"Microsoft.Extensions.Logging.Debug": "1.0.0",
"Microsoft.VisualStudio.Web.BrowserLink.Loader": "14.0.0"
},
"frameworks": {
"netcoreapp1.0": {
"dependencies": {
"Microsoft.NETCore.App": {
"type": "platform",
"version": "1.0.0"
}
}
}
},
"runtimes": {
"win10-x86": {}
}
【问题讨论】:
-
您要求更多“核心”。没有人喜欢在手机上运行注册表清理程序。或者Linux。当您依赖于只能在 Windows 安装上运行的组件时,使用 .NETCore 根本没有任何意义。只针对 .NET 的完整版本,它总是在这样的机器上可用。
-
@HansPassant 我将我的框架更改为 net461,这似乎解决了这个错误。感谢您的帮助。