Можно ли использовать новый файл .csproj в стиле SDK для проекта UWP? - PullRequest
0 голосов
/ 28 сентября 2018

Кто-нибудь успешно создал файл .csproj для проекта UWP, который использует новый формат SDK в стиле .csproj?Я черпал вдохновение из этого вопроса о WPF, и это дало мне 90% пути.

После этого я начал использовать пакет MSBuild.Sdk.Extras , который дал мне доступ к uap10.0 как <TargetFramework>, и после небольшого изменения я получил его на самом деле компилируя со следующим .csproj:

<Project Sdk="MSBuild.Sdk.Extras">
  <PropertyGroup>    
    <!--UWP-specific properties-->        
    <TargetPlatformVersion Condition=" '$(TargetPlatformVersion)' == '' ">10.0.17134.0</TargetPlatformVersion>
    <TargetPlatformMinVersion>10.0.17134.0</TargetPlatformMinVersion>
    <TargetFrameworks>uap10.0</TargetFrameworks>
    <OutputType>AppContainerExe</OutputType>    
    <LanguageTargets>$(MSBuildExtensionsPath)\Microsoft\WindowsXaml\v$(VisualStudioVersion)\Microsoft.Windows.UI.Xaml.CSharp.targets</LanguageTargets>
    <Platform Condition=" '$(Platform)' == '' ">x86</Platform>
    <PackageCertificateKeyFile>Test.UWP_TemporaryKey.pfx</PackageCertificateKeyFile>
  </PropertyGroup>


  <PropertyGroup Condition="'$(Configuration)'=='Debug'">
    <OutputPath>bin\x86\Debug\</OutputPath>
    <DebugType>full</DebugType>
    <PlatformTarget>x86</PlatformTarget>
    <DebugSymbols>true</DebugSymbols>
    <DefineConstants>DEBUG;TRACE;NETFX_CORE;WINDOWS_UWP</DefineConstants>
  </PropertyGroup>


  <PropertyGroup Condition="'$(Configuration)'=='Release'">
    <OutputPath>bin\x86\Release\</OutputPath>
    <DefineConstants>TRACE;NETFX_CORE;WINDOWS_UWP</DefineConstants>
    <Optimize>true</Optimize>
    <PlatformTarget>x86</PlatformTarget>
    <UseDotNetNativeToolchain>true</UseDotNetNativeToolchain>
  </PropertyGroup>  


  <ItemGroup>    

    <!--XAML stuff-->
    <ApplicationDefinition Include="App.xaml">
      <SubType>Designer</SubType>
      <Generator>MSBuild:Compile</Generator>
    </ApplicationDefinition>

    <Page Include="**\*.xaml" Exclude="App.xaml">
      <SubType>Designer</SubType>
      <Generator>MSBuild:Compile</Generator>
    </Page>        
    <Compile Update="**\*.xaml.cs" SubType="Code" DependentUpon="%(Filename)" />

     <AppxManifest Include="Package.appxmanifest">
      <SubType>Designer</SubType>
    </AppxManifest>

    <!--Local projects-->

    <!--Nuget references-->
  </ItemGroup>      

</Project>

Однако, некоторые проблемыоставайтесь:

  • При сравнении стандартного проекта UWP и моего пользовательского проекта каталог скомпилированного каталога /bin пользовательского проекта, похоже, не содержит зависимостей .dll.(/ bin dir для нестандартного проекта слева, стандартный проект UWP справа.)

Image comparing resulting /bin directories

  • Intellisense Visual Studio жалуетсяо том, что встроенные типы XAML не поддерживаются.

... что приводит к немедленному аварийному завершению .exe при загрузке.

У кого-нибудь есть советы, как получить эту вещьдо финиша?

Visual Studio error message

1 Ответ

0 голосов
/ 02 октября 2018

~ РЕДАКТИРОВАТЬ: ~ На Build 2019 было несколько тихих объявлений о том, что UWP начнет работать в среде выполнения .NET Core с выпуском .NET Core 3. Кажется вероятным, что это повлечет за собой переход к новому стилю .csproj дляПроекты UWP также.

ОРИГИНАЛЬНАЯ ПОЧТА:

Похоже, что на данный момент ответ - нет. Per Oren Novotny , умный человек, который сделал дополнения MS Build SDK:

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...