2016-09-13 15 views
0

Я пытаюсь обновить веб-приложение от dnx451 до dotnetcoreapp1.0.CoreCLR, 'Тип' не содержит определения для 'GetTypeFromProgID'

Это приложение должно использовать старую библиотеку (по крайней мере, я думаю, что это библиотека). Этот фрагмент используется для работы с 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 }); 

Любые идеи или обходные пути? Благодаря!

EDIT:

Код выше в библиотека классов отдельно от веб-приложения ASP.NET ядра, который ссылается на его. Вот 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": { } 
} 

А вот это project.json для веб-приложений ASP.NET Core:

"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": {} 
} 
+1

Вы попросили больше «ядро». Никто не любит запускать очиститель реестра на своем телефоне. Или Linux. Использование .NETCore не имеет никакого смысла, если у вас есть зависимость от компонента, который может работать только при установке Windows. Просто настройте полную версию .NET, она всегда доступна на такой машине. –

+0

@HansPassant Я изменил свою инфраструктуру на net461 и, похоже, исправил эту ошибку. Спасибо за вашу помощь. –

ответ

0

Type.GetTypeFromProgID существуют, если вы будете добавлять "System.Runtime": "4.1.0" зависимостей в файле project.json.

Если вы хотите проверить, существуют ли какие-либо api и где они существуют, используйте apisof.net.

Во всяком случае, как писал Ганс, может быть, вы не должны предназначаться чистого ядра вообще ..

+0

Я добавил «System.Runtime»: «4.1.0», но это не исправило ошибку. Спасибо за предложение. –

+0

@johnluke Можете вы показать мне файл project.json? Команда восстановления выполнена? Я просто попробовал его с новым проектом coreapp, и он работает. –

+0

Я добавил файлы project.json. Восстановление dotnet работает как для библиотеки классов, так и для основного веб-приложения. Тем не менее, я все еще получаю ту же самую оригинальную ошибку. –

0

я изменил свою структуру для net461, и она работала. И я все еще могу использовать пакеты AspNetCore:

"frameworks": { 
    "net461": {} 
} 

Однако, теперь у меня есть проблемы, связанные с загрузкой библиотеки COM, но я думаю, что это отдельная ошибка, поэтому я вывешу новый вопрос.

 Смежные вопросы

  • Нет связанных вопросов^_^