Как выполнить сборку с использованием встроенного предварительного просмотра Corert?C#

Место общения программистов C#
Ответить
Anonymous
 Как выполнить сборку с использованием встроенного предварительного просмотра Corert?

Сообщение Anonymous »

Я пытался собрать консольное приложение .NET Core 2.0, ориентированное на Win-x86, с использованием компилятора CoreRT ilc и компоновщика Microsoft.
На данный момент я скачал последнюю версию Библиотеки CoreRT и успешно создали предварительную версию, используя цель выпуска на момент фиксации C7781A90F00645F6BD06EF57E5D3FD879FE3E9A0.
Я добавил сценарии сборки rd.xml, ilc.rsp и link.rsp, но продолжаю получать сообщения от ilc:

Error: Target architecture is not supported
Internal.CommandLine.CommandLineException: Target architecture is not supported
at ILCompiler.Program.Run(String[] args)
at ILCompiler.Program.Main(String[] args)

Мне удалось решить проблему с архитектурой, но теперь она не работает из-за отсутствующей ссылки на файл:
C:\
cd \testapp
call "..\corert\bin\Windows_NT.x64.Release\tools\ilc.exe" ".\ilc.rsp"

Вывод:
Error: [TEMPORARY EXCEPTION MESSAGE] FileLoadErrorGeneric: Microsoft.Extensions.Options
Internal.TypeSystem.TypeSystemException+FileNotFoundException: [TEMPORARY EXCEPTION MESSAGE] FileLoadErrorGeneric: Microsoft.Extensions.Options
at Internal.TypeSystem.ThrowHelper.ThrowFileNotFoundException(ExceptionStringID id, String fileName)
at ILCompiler.CompilerTypeSystemContext.GetModuleForSimpleName(String simpleName, Boolean throwIfNotFound)
at Internal.TypeSystem.CustomAttributeTypeNameParser.GetTypeByCustomAttributeTypeName(ModuleDesc module, String name, Boolean throwIfNotFound, Func`4 resolver)
at Internal.TypeSystem.CustomAttributeTypeNameParser.GetTypeByCustomAttributeTypeName(ModuleDesc module, String name, Boolean throwIfNotFound, Func`4 resolver)
at ILCompiler.RdXmlRootProvider.ProcessTypeDirective(IRootingServiceProvider rootProvider, ModuleDesc containingModule, XElement typeElement)
at ILCompiler.RdXmlRootProvider.ProcessAssemblyDirective(IRootingServiceProvider rootProvider, XElement assemblyElement)
at ILCompiler.RdXmlRootProvider.AddCompilationRoots(IRootingServiceProvider rootProvider)
at ILCompiler.Compilation..ctor(DependencyAnalyzerBase`1 dependencyGraph, NodeFactory nodeFactory, IEnumerable`1 compilationRoots, DebugInformationProvider debugInformationProvider, Logger logger)
at ILCompiler.ILScannerBuilder.ToILScanner()
at ILCompiler.Program.Run(String[] args)
at ILCompiler.Program.Main(String[] args)

Мне удалось решить проблемы, найдя ссылки на все недостающие файлы, но в конце концов я понял, что мне нужно переключить целевую архитектуру на x64, однако теперь компоновщик не работает. :
C:\
cd \testapp
call link @".\link.rsp"

Вывод:
libcpmt.lib(nothrow.obj) : fatal error LNK1112: module machine type 'x86' conflicts with target machine type 'x64'


Подробнее здесь: https://stackoverflow.com/questions/464 ... rt-preview
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»