Где родной .NET?

Мне очень понравилась идея compile C# code to native machine code скачал .NET native и установил его. Но я не могу настроить свою сборку для компиляции ни в x86, ни в x64. На самом деле никакой другой арки, кроме «любого процессора», не существует:

введите здесь описание изображения

Вот VS о:

введите здесь описание изображения

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

введите здесь описание изображения


person Jack    schedule 05.04.2015    source источник
comment
AFAIK .NET native поддерживается только для приложений Магазина Windows. Рабочий стол не является поддерживаемой целью.   -  person Mike Zboray    schedule 06.04.2015
comment
вы все еще не можете использовать ngen.exe? msdn.microsoft.com/en-us/library /6t9t5wcf(v=vs.110).aspx   -  person Michael Edenfield    schedule 06.04.2015
comment
@MichaelEdenfield: со страницы Ngen.exe создает собственные образы, которые представляют собой файлы, содержащие скомпилированный машинный код для конкретного процессора, и устанавливает их в собственный кеш изображений на локальном компьютере, что действительно устанавливает их в собственный кеш изображений на локальном компьютере. иметь в виду? Я запустил это на своем исполняемом файле C # и после проверки с помощью IL SPY показал код MSIL, а не родной. я не понимаю...   -  person Jack    schedule 06.04.2015
comment
ngen используется на целевой машине; он компилирует ваш IL в собственный код, так что когда CLR запускает его, он уже JIT. Это не совсем то же самое, что и .NET Native, но похоже, поэтому я и предложил вам взглянуть на него.   -  person Michael Edenfield    schedule 06.04.2015
comment
@MichaelEdenfield: кажется, я понял. Но этот jit-ed исполняемый файл может работать на другом компьютере, а не на том, на котором он был сгенерирован?   -  person Jack    schedule 06.04.2015
comment
@Jack Файл .dll, на котором вы запускаете ngen, не изменяется. Он хранится в собственном кэше изображений (NIC), вы можете найти его здесь: stackoverflow.com/questions/5657566/ Вы можете скопировать .dll на другой компьютер и запустить там ngen, поскольку оригинальная .dll не изменена. Типичный способ использования — запуск ngen в качестве одного из шагов программы установки.   -  person Robert Rouhani    schedule 06.04.2015
comment
Я смог сгенерировать и нашел это в C:\Windows\assembly\NativeImages_v4.0.30319_32\myProgram\db1496cf0295bbe6a9242d86c0d8e091\myProgram.ni.exe, но я не могу запустить его напрямую, не так ли? если я попытаюсь, я получу This app can't run on your PC сообщение об ошибке. Я полагаю, что если я запущу ngen в каждом *.exe и *.dll и дам пользователю сгенерировать файлы изображений, это не сработает, не так ли?   -  person Jack    schedule 06.04.2015
comment
Я открыл еще одну ветку с дополнительными вопросами о ngen, но собираюсь ее удалить: stackoverflow.com/questions/29464018 /как-работает-ngen   -  person Jack    schedule 06.04.2015
comment
Я думаю, что опоздал, но, похоже, это только UWP. Никто не знает. Я даже не знаю, знает ли Microsoft.   -  person Renzo Coppola    schedule 17.12.2016


Ответы (2)


Это потому, что ваше приложение является Windows Forms приложением. Из документов:

Эта предварительная версия для разработчиков в настоящее время позволяет создавать приложения для Магазина Windows на архитектурах ARM и x64 (следите за обновлениями x86). .NET Native скоро обеспечит согласованную и конвергентную работу на разных устройствах. Сегодняшняя предварительная версия поддерживает приложения Магазина Windows. Мы будем продолжать развивать и улучшать собственную компиляцию для ряда приложений .NET.

person André Pena    schedule 05.04.2015
comment
Это то же самое через два года? - person beppe9000; 02.10.2017

Этот транспилятор c # to c может быть хорошим вариантом для приложений, отличных от магазина Windows.

https://csnative.codeplex.com/

person dss    schedule 19.04.2016