Pytanie Aplikacja Windows Universal - brak konfiguracji "Any CPU" dla systemu Windows 10?


Aktualizuję projekt systemu Windows Universal, który został utworzony za pomocą

Windows Software Development Kit (SDK) dla systemu Windows 10 Techniczny Zapowiedź

do

Windows Software Development Kit (SDK) dla systemu Windows 10 Wtajemniczony Zapowiedź:

Tak więc zmiany w pliku rozwiązania są tylko VisualStudioVersion od 14.0.22609.0 do 14.0.22823.1.

Zmiany w pliku projektu są również niewielkie:

<TargetPlatformVersion>10.0.10030.0</TargetPlatformVersion>
<TargetPlatformMinVersion>10.0.10030.0</TargetPlatformMinVersion>

do

 <TargetPlatformVersion>10.0.10069.0</TargetPlatformVersion>
 <TargetPlatformMinVersion>10.0.10069.0</TargetPlatformMinVersion>

Problem polega na tym, że pierwotnie ten uniwersalny projekt został pomyślnie zbudowany przeciwko Dowolny procesor konfiguracji, ale teraz zaczynam otrzymywać następujący błąd:

Architektura procesora budowanego projektu "Any CPU" nie jest   obsługiwane przez odwołane SDK "Microsoft.NET.CoreRuntime,   Wersja = 1.0 ". Proszę rozważyć zmianę docelowego procesora   architektura twojego projektu (w Visual Studio można to zrobić   przez program Configuration Manager) do jednej z architektur   obsługiwane przez SDK: "x86, x64, ARM".

Więc wiadomość jest jasna, co robić, po prostu chcesz potwierdzić:

Czy to naprawdę tak jest Dowolny procesor nie jest już możliwe dla projektów uniwersalnych, począwszy od "SDK for Windows 10 Insider Preview"?

Aktualizacja

Nie ma żadnego AnyCPU dla nowo utworzonego projektu - domyślny jest x86.


18
2018-04-30 22:44


pochodzenie


Pamiętaj, że używasz SDK, który może i będzie się zmieniać, błędy i wszystko. - SteveFerg
@SteveFerg, jasne. Zastanawiasz się, ile może być "według projektu" lub po prostu błąd. - Sevenate
to też jest dla mnie zaskakujące, trochę przypomina to wymaganie, a nie błąd. Tak samo jest z projektem File new, bez wsparcia dla Any Cpu - Quincy
@Quincy, dokładnie! Pierwszą rzeczą, którą wypróbowałem, był nowy, pusty, uniwersalny projekt i brak wzmianki o dowolnym CPU dla niego. - Sevenate
TE NIE SĄ TYLKO ZMIANAMI W CSPROJ  - Proszę wykonać Plik> Nowy w kompilacji "RC", a następnie przekonwertować wynikowy plik .csproj na istniejący. Musisz także dodać <EnableDotNetNativeCompatibleProfile> true </ EnableDotNetNativeCompatibleProfile> i dodatkowo dodać <UseDotNetNativeToolchain> true </ UseDotNetNativeToolchain> do każdej wersji Release. - Lucian Wischik


Odpowiedzi:


I oto nadchodzi odpowiedź:

  1. Otwórz rozwiązanie, które zawiera Twoją uniwersalną aplikację C # Windows. Zobaczysz, że twój plik projektu (plik .csproj) wymaga aktualizacji. Kliknij prawym przyciskiem myszy plik projektu i wybierz, aby edytować ten plik.

  2. Znaleźć <PropertyGroup> element zawierający <TargetPlatformVersion> ... Następnie ustaw wartość parametru <Platform> element do x86 ...

  3. Odnaleźć <PropertyGroup> elementy, które są skonfigurowane dla AnyCPU platforma jako część atrybutu Condition. Usuń te elementy i wszystkie ich elementy podrzędne. AnyCPU nie jest obsługiwany dla aplikacji Windows 10 w Visual Studio 2015 RC.

AKTUALIZACJA 1

Z tego filmu wideo - Deep Dive w XAML i .NET Universal Programowanie aplikacji Windows, prześlij do 0:32:28 - wygląda na to, że istnieje (mała) szansa na odzyskanie "Any CPU" w wydaniu:

Screenshot from Deep Dive into XAML and .NET Universal Windows App Development video

AKTUALIZACJA 2

Jeszcze jedno potwierdzenie od Visual Studio 2015 RC naprawiono błędy i znane problemy:

The AnyCPU Konfiguracja platformy nie jest obsługiwana w przypadku aplikacji podglądu poufności systemu Windows 10, które są zbudowane przy użyciu C # i Visual Basic. Ta wersja programu Visual Studio korzysta z .NET Native do budowania aplikacji Windows 10. .NET Native kompiluje kod C # i Visual Basic do natywnego kodu i nie jest agnostykiem CPU.

Wydaje mi się, że nadzieja na odzyskanie konfiguracji "AnyCPU" prawie zniknęła nawet w przypadku VS2015 RTM.

AKTUALIZACJA 3

Dobrze, RTM w końcu tu jest i zgodnie z oczekiwaniami - brak AnyCPU:

Znajdź elementy skonfigurowane dla platformy AnyCPU jako część atrybutu Condition. Usuń te elementy i wszystkie ich dzieci. AnyCPU nie jest obsługiwany dla aplikacji systemu Windows 10 w Visual Studio 2015.


20
2018-05-05 00:01



Fajnie dzięki. Nazwaliśmy to - AnyCPU nie jest obsługiwane! Wow interesujące - Quincy
Czy będzie obsługiwany w finalnym VS2015? - Rico Suter
@RicoSuter być może :) - Sevenate
Wydaje się, że wciąż jest nadzieja ... :) Potrzebuję AnyCPU do mojej biblioteki, mytoolkit.codeplex.com, w przeciwnym razie opakowanie będzie cierpieniem. - Rico Suter
Wydaje się naprawdę dziwne, że usuną Dowolny CPU jako cel. : - / - BrainSlugs83


Dobrze, AnyCPU wciąż tam jest DLL i Windows Runtime Component typy projektów. Brak AnyCPU jest spowodowany domyślnym użyciem domeny .NET dla aplikacji Universal Windows w konfiguracji Release. Jak być może wiesz, .NET Native łączy aplikację i wszystkie jej zależności w pojedynczy plik EXE, dlatego też AnyCPU nadal będzie dostępne dla bibliotek DLL i komponentów WinRT.

Teraz nie jestem pewien, ale faceci DevDiv wydają się zbierać opinie na temat "default-ness" .NET Native, więc AnyCPU nadal może wrócić do czasu lub po RTM, jeśli jest wystarczająco dużo opinii na ten temat. Uważam jednak, że .NET Native jest tego warta, ponieważ zazwyczaj wdrażasz swoje aplikacje za pośrednictwem Store.


3
2018-05-15 18:42



Powiedziałbym, że ogólnie wdrażam mój aplikacje dokładnie za pomocą ładowań bocznych i z magazynu Store I innych ludzi aplikacje. - Sevenate
W każdym razie dobrze jest mieć AnyCPU przynajmniej dla projektów komponentów wykonawczych. - Sevenate
Jestem "devdiv guy". Język .NET jest obowiązkowy dla aplikacji sklepu. Jedyną rzeczą, na którą Unni nawołuje do "szukania informacji zwrotnej", jest to, że jeśli kochasz AnyCPU na tyle, to może możemy "sfingować to" - tj. Sprawić, byś mógł wybrać AnyCPU, i przesłucha twoje urządzenie docelowe, jaka to architektura, a następnie domyślnie wybiera tę architekturę. Sama aplikacja nigdy naprawdę nie będzie AnyCPU. - Lucian Wischik
Dzięki za informację. Choć krytyka Microsoftu: wspieranie "natywnej" kompilacji nie wydaje się dobrym pretekstem - w końcu to rozwiązany problem (Mac miał natywne aplikacje, które mogły działać na PPC i Intelu przez długi czas; skompilowane "Fat Binaries", które zawierało wiele plików wykonywalnych wkompilowanych do niego). - Wygląda na to, że tak super łatwe aby utworzyć pakiet sklepu Windows zawierający wiele plików exe, po jednym dla każdej platformy. - BrainSlugs83
Myślę, że powinna to być zaakceptowana odpowiedź i właśnie znalazłem doskonałe odniesienie na: blogs.windows.com/buildingapps/2015/08/20/... (Wydaje mi się, że można opublikować aplikację Windows Store z wieloma plikami EXE, choć żałuję, że nie byłyby tak płynne). - brodybits


Zakładam, że klikniesz prawym przyciskiem myszy na swoim projekcie przechodząc do Właściwości. W górnej linii "Build" pod platformą masz ARM, x64, x86 i wszystkie platformy. Nieco dalej w polu grupy "Ogólne" masz "Cel platformy", który daje dowolny CPU, x86, x64 i ARM.

Jeśli patrzysz na program Configuration Manager (build-> Configuration Manager), masz rację: ARM, x64, x86, new ... i edit .... Jeśli klikniesz na New ..., "Any CPU "to opcja (domyślnie), którą możesz dodać, a następnie możesz wrócić i wybrać ją do swojej konfiguracji.


1
2018-05-01 23:59



Naprawdę miałem nadzieję, że to zadziała, ale, niestety, nadal otrzymuję błąd cytowany w pytaniu nawet po zmianie konfiguracji wszędzie na Dowolny procesor. Podejrzewam, że kluczowe słowa tutaj będą: "... Każdy procesor jest Nieobsługiwany przez wspomniany SDK "i" ... jedną z architektur obsługiwane przez SDK: "x86, x64, ARM" ". - Sevenate