2012-11-12 19 views
13

Czy byłoby możliwe kodowanie i kompilowanie C# na tablecie Windows 8 (WinRT) (edycja procesora ARM)?Skompiluj C# na (nie dla) Windows 8 ARM Tablet

Zasadniczo sprowadza się do tego:

  • Czy istnieje kompilator C#, który działa na ARM?
  • Czy istnieje i IDE, które może działać w WinRT?

Jeśli powyższe jest prawdą, nie widzę żadnego problemu, ale obecnie nie można znaleźć, jeżeli kompilator C# działa na ARM (tylko dużo postów na temat kompilacji dla ARM). Spojrzałem również na SharpDevelop i odkryłem, że ich kod źródłowy kompiluje dla "Any CPU", który zgodnie z tym postem: Windows RT and c#, oznacza, że ​​będzie działał na ARM.

Sharpdevelop wymaga jednak środowiska wykonawczego .NET 4.0 "Full", którego nie mogłem znaleźć, jeśli ma lub nie WinRT. Założę się, że tak nie jest, ponieważ WinRT ma być naprawdę lekką edycją Windows.

Jako sidenote, wiem, że tablety Windows pojawią się w dwóch wersjach, jednej dla ARM i jednej dla klasycznych procesorów. Klasyczne procesory uruchomią normalną edycję systemu Windows 8, co oznacza, że ​​może uruchomić wszystkie aplikacje natywne. Kompilowanie C# nie byłoby tu problemem - więc pytanie brzmi raczej, czy mogę zrobić to samo na ARM?


To byłoby niesamowite, podróżując i wypróbowując nowe pomysły szybko.

+1

To nie odpowiada bezpośrednio na twoje pytanie, ale na wypadek, gdybyś nie był świadomy, istnieje [ShiftEdit] (https://shiftedit.net) – JMK

+2

Jest to bardzo mało prawdopodobne, że SharpDevelop będzie działał na Windows RT. Dla wszystkich celów i celów można rozważyć WinRT oddzielną platformę od "Windows .NET". Dzielą dobrą porcję standardowej biblioteki, ale jeśli chcesz stworzyć aplikację GUI * masz * do jawnego kodowania przeciwko API specyficznym dla WinRT. – millimoose

+1

@JMK, ShiftEdit wygląda świetnie, będę pamiętać to narzędzie. :) Ale tak, nie to, czego szukałem. : P Na ścieżce internetowych IDE jest https://compilr.com/, na który przyjrzę się. –

Odpowiedz

6

Obecnie: nie i nie.

Z pewnością można zbudować aplikację Windows Store zawierającą IDE i kompilator C#. Nie można jednak uruchamiać żadnych programów zbudowanych przy użyciu takiej aplikacji. Aplikacje Windows Store działają z ograniczonymi uprawnieniami w piaskownicy. W tym obszarze izolowanym środowisko CLR ładuje tylko zespoły i złożenia systemowe zawarte w pakiecie aplikacji. Pakiet aplikacji jest niezmienny i nie można go modyfikować w czasie wykonywania.

+0

Więc odbicie jest okaleczone (brak obsługi dynamicznego kodegena) podczas korzystania. NET w kontekście WinRT/Store? Przypuszczam, że nadal możesz pobrać dane i przesłać je gdzieś, a następnie zainstalować/zaktualizować nowo wygenerowany pakiet aplikacji stamtąd, korzystając ze Sklepu. –

+0

@BenVoigt: Nie ma obsługi dynamicznego kodegenu, Reflection :: Emit nie jest obsługiwany, System :: Assembly :: LoadFrom nie jest obsługiwany (naprawdę, żadna z metod Load jest w pełni obsługiwana). W natywnym kodzie, LoadLibrary i VirtualAlloc/VirtualProtect nie są obsługiwane. Możesz użyć drugiego komputera z systemem Windows 8 (na x86 lub x64) i jakoś komunikować się z tym komputerem i pobrać go do wdrożenia nowej aplikacji na urządzeniu ARM. Ale jeśli tak zrobisz, jaki jest sens budowania aplikacji na ARM? (tzn. dlaczego nie można zdalnie na komputerze x86/x64?) –

+0

Co stało się z klasami szkieletowymi, które generowały kod w czasie wykonywania, na przykład serializatory XML? Po prostu niedostępne? Microsoft .NET będzie jedynym obsługiwanym JIT (ponieważ Java/Python/Flash/inne środowisko uruchomieniowe nie może wygenerować kodu i uruchomić go)? –

1

W rzeczywistości, struktura .Net na powierzchni zawiera csc.exe, kompilator Csharp. Dostałem kod do kompilacji, ale wydaje się, że WinRt nie podoba się uruchamianiu bez odpowiedniego podpisania.

IDE nie nastąpi przez jakiś czas, a przynajmniej nie. Jestem pewien, że przy odpowiednim podpisaniu możliwe jest uruchomienie skompilowanego pliku wykonywalnego.

Albo drugi facet może mieć rację i nie jest to tylko kwestia podpisania.