Msbuild не может найти файлы в папке «Мои активы»

Я пытаюсь создать свое первое приложение uwp. Я тоже новичок в С#. Я использую инструменты сборки Visual Studio 2019. Я думаю, что все сделал правильно, но когда я запускаю msbuild, я получаю следующую ошибку:

"C:\Projects\C\UapHello\uaphello.csproj" (default target) (1) ->

(цель _ValidateAppxPackage) -> Package.appxmanifest(41,9): ошибка APPX0703: манифест ссылается на файл Assets\Square150x150Logo.png, который не является частью полезной нагрузки. [C:\Projects\C\UapHello\uaphello.csproj] Package.appxmanifest(42,9): ошибка APPX0703: манифест ссылается на файл Assets\Square44x44Logo.png, который не является частью o f полезной нагрузки. [C:\Projects\C\UapHello\uaphello.csproj] Package.appxmanifest(27,6): ошибка APPX0703: манифест ссылается на файл StoreLogo.png, который не является частью полезной нагрузки . [C:\Projects\C\UapHello\uaphello.csproj] Package.appxmanifest(45,27): ошибка APPX0703: манифест ссылается на файл Assets\SplashScreen.png, который не является частью полезная нагрузка. [C:\Projects\C\UapHello\uaphello.csproj]

Я почти уверен, что эти файлы существуют в указанной папке. Я включаю свой csproj и appmanifest:

    <?xml version = "1.0" encoding = "utf-8"?>

<Package
  xmlns = "http://schemas.microsoft.com/appx/manifest/foundation/windows10"
  xmlns:mp = "http://schemas.microsoft.com/appx/2014/phone/manifest"
  xmlns:uap = "http://schemas.microsoft.com/appx/manifest/uap/windows10"
  xmlns:uap5 = "http://schemas.microsoft.com/appx/manifest/uap/windows10/5" 
  xmlns:desktop4 = "http://schemas.microsoft.com/appx/manifest/desktop/windows10/4" 
  xmlns:iot2 = "http://schemas.microsoft.com/appx/manifest/iot/windows10/2" 
  IgnorableNamespaces = "uap mp uap5 iot2 desktop4">

  <Identity
    Name = "IggyMakesThings"
    Publisher = "CN=IggyMakesThings, O=IggyMakesThings, L=Redmond, S=Washington, C=US"
    Version = "1.0.0.0" />


  <mp:PhoneIdentity PhoneProductId = "11a54d62-0d60-4e17-820d-1fa537715b3a" PhonePublisherId = "00000000-0000-0000-0000-000000000000"/>

    <Dependencies>
    <TargetDeviceFamily Name = "Windows.Universal" MinVersion = "10.0.17763.0" MaxVersionTested = "10.0.17763.0" />
  </Dependencies>

  <Properties>
    <DisplayName>uaphello</DisplayName>
    <PublisherDisplayName>IggyMakesThings</PublisherDisplayName>
    <Logo>StoreLogo.png</Logo>
  </Properties>


  <Resources>
    <Resource Language = "x-generate"/>
  </Resources>

  <Applications>
    <Application Id = "App"
      Executable = "uaphello.exe"
      EntryPoint = "UAPHello.App">
      <uap:VisualElements
        DisplayName = "UAPSample"
        Square150x150Logo = "Assets\Square150x150Logo.png"
        Square44x44Logo = "Assets\Square44x44Logo.png"
        Description = "UAP C# Sample"
        BackgroundColor = "#000000">
        <uap:SplashScreen Image = "Assets\SplashScreen.png" />
        <uap:DefaultTile>
          <uap:ShowNameOnTiles>
            <uap:ShowOn Tile = "square150x150Logo" />
          </uap:ShowNameOnTiles>
        </uap:DefaultTile>
      </uap:VisualElements>
    </Application>
  </Applications>


</Package>

И кспродж:

<?xml version = "1.0" encoding = "utf-8"?>
<Project ToolsVersion = "Current" DefaultTargets = "Build" xmlns = "http://schemas.microsoft.com/developer/msbuild/2003">
  <Import Project = "$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition = "Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />

  <PropertyGroup>
    <Configuration Condition = " '$(Configuration)' == '' ">Debug</Configuration>
    <Platform Condition = " '$(Platform)' == '' ">Win32</Platform>
    <ProjectGuid>{$guid1$}</ProjectGuid>
    <OutputType>AppContainerExe</OutputType>
    <RootNamespace>uaphello</RootNamespace>
    <DefaultLanguage>en-US</DefaultLanguage>
    <TargetPlatformIdentifier>UAP</TargetPlatformIdentifier>
    <TargetPlatformVersion>10.0.17763.0</TargetPlatformVersion>
    <TargetPlatformMinVersion>10.0.17763.0</TargetPlatformMinVersion>
    <EnableDotNetNativeCompatibleProfile>true</EnableDotNetNativeCompatibleProfile>  
  </PropertyGroup>


  <PropertyGroup>
    <OutputPath>bin\$(Platform)\$(Configuration)\</OutputPath>
  </PropertyGroup>

  <PropertyGroup Condition = "'$(Configuration)|$(Platform)' == 'Debug|x64'">
    <PlatformTarget>x64</PlatformTarget>
    <DebugSymbols>true</DebugSymbols>
    <DefineConstants>DEBUG;TRACE;NETFX_CORE;WINDOWS_UWP</DefineConstants>
    <NoWarn>;2008</NoWarn>
    <DebugType>full</DebugType>
    <UseVSHostingProcess>false</UseVSHostingProcess>
    <ErrorReport>prompt</ErrorReport>
    <Prefer32Bit>true</Prefer32Bit>
  </PropertyGroup>
  <PropertyGroup Condition = "'$(Configuration)|$(Platform)' == 'Release|x64'">
    <PlatformTarget>x64</PlatformTarget>
    <DefineConstants>TRACE;NETFX_CORE;WINDOWS_UWP</DefineConstants>
    <Optimize>true</Optimize>
    <NoWarn>;2008</NoWarn>
    <DebugType>pdbonly</DebugType>
    <UseVSHostingProcess>false</UseVSHostingProcess>
    <ErrorReport>prompt</ErrorReport>
    <Prefer32Bit>true</Prefer32Bit>
  </PropertyGroup>
  <PropertyGroup Condition = "'$(Configuration)|$(Platform)' == 'Debug|Win32'">
    <PlatformTarget>x86</PlatformTarget>
    <DebugSymbols>true</DebugSymbols>
    <DefineConstants>DEBUG;TRACE;NETFX_CORE;WINDOWS_UWP</DefineConstants>
    <NoWarn>;2008</NoWarn>
    <DebugType>full</DebugType>
    <UseVSHostingProcess>false</UseVSHostingProcess>
    <ErrorReport>prompt</ErrorReport>
    <Prefer32Bit>true</Prefer32Bit>
  </PropertyGroup>
  <PropertyGroup Condition = "'$(Configuration)|$(Platform)' == 'Release|Win32'">
    <PlatformTarget>x86</PlatformTarget>
    <DefineConstants>TRACE;NETFX_CORE;WINDOWS_UWP</DefineConstants>
    <Optimize>true</Optimize>
    <NoWarn>;2008</NoWarn>
    <DebugType>pdbonly</DebugType>
    <UseVSHostingProcess>false</UseVSHostingProcess>
    <ErrorReport>prompt</ErrorReport>
    <Prefer32Bit>true</Prefer32Bit>
  </PropertyGroup>

  <ItemGroup>
    <Compile Include = "Program.cs" />
  </ItemGroup>

  <ItemGroup>
    <PackageReference Include = "Microsoft.NETCore.UniversalWindowsPlatform" Version = "6.2.8" />
  </ItemGroup>

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

   <Import Project = "$(MSBuildExtensionsPath)\Microsoft\WindowsXaml\v$(VisualStudioVersion)\Microsoft.Windows.UI.Xaml.CSharp.targets" />

</Project>

Пожалуйста помоги

Как насчет результата сборки при сборке проекта UWP с помощью Visual Studio на локальном компьютере? И устанавливали ли вы рабочую нагрузку UWP при установке инструментов сборки VS? Также поделитесь с нами своей командной строкой MSBuild, чтобы мы могли воспроизвести ее на моей стороне.

Nico Zhu - MSFT 29.05.2019 10:56

Я просто использую команду msbuild. Также я использую только инструменты сборки Visual Studio 2019. У меня нет полной Visual Studio.

daibatzu 29.05.2019 13:56

Вот что я говорю. Я просто набираю «msbuild» в командной строке, и он делает все остальное. У меня уже есть файл csproj, поэтому я считаю, что он берется оттуда.

daibatzu 30.05.2019 11:24

Вот что я говорю. Я просто набираю «msbuild» в командной строке, и он делает все остальное. У меня уже есть файл csproj, поэтому я считаю, что он берется оттуда.

daibatzu 30.05.2019 11:24

@daibatzu Привет, есть новости по этой проблеме? Пожалуйста, дайте мне знать, если это полезно или нет.

LoLance 03.06.2019 04:09
Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
0
5
686
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

I think something missing in your .csproj file caused this issue.

Шаги для воспроизведения той же проблемы:

1. Создайте новое пустое приложение (универсальное приложение для Windows).

2.В VS для тех ресурсов .png: Исключить из проекта

3. Скопируйте решение для сборки сервера, где есть только инструменты сборки.

4. Восстановите пакеты nuget и создайте проект с помощью команды, например:

msbuild path/xxx.csproj(or xxx.sln) /p:Platform=X64 /p:AppxBundle=Always 

5. Получите следующую ошибку:

Вы можете выполнить мои простые шаги, чтобы найти причину проблемы.

По моему мнению:

Вы можете выполнить аналогичную операцию, как у меня. Может быть Exclude from Project, может быть, удалить содержимое ItemGroup в файле xx.csproj или что-то в этом роде.

В результате удаляется ItemGroup для этих файлов .png в xx.csproj. Если вы создадите новое пустое приложение (UWP) и проверите его содержимое файла .csproj, вы увидите:

<ItemGroup>
    <Content Include = "Properties\Default.rd.xml" />
    <Content Include = "Assets\LockScreenLogo.scale-200.png" />
    <Content Include = "Assets\SplashScreen.scale-200.png" />
    <Content Include = "Assets\Square150x150Logo.scale-200.png" />
    <Content Include = "Assets\Square44x44Logo.scale-200.png" />
    <Content Include = "Assets\Square44x44Logo.targetsize-24_altform-unplated.png" />
    <Content Include = "Assets\StoreLogo.png" />
    <Content Include = "Assets\Wide310x150Logo.scale-200.png" />
  </ItemGroup>

Но этот контент отсутствует в вашем файле .csproj.

Эти четыре файла, которые используются в вашем манифесте приложения, действительно находятся в вашей папке asserts.

Но без ссылки на содержимое в файле .csproj процесс сборки не сможет их правильно найти.Square150x150Logo.png,Square44x44Logo.png,StoreLogo.png,SplashScreen.png

В качестве обходного пути:

Таким образом, вы можете отредактировать файл xx.csproj и добавить в него ItemGroup. Но я не безусловно уверен, что это сработает. Поскольку после моей проверки вашего файла .csproj. Возможно, вы исключили или удалили не только файлы .png!!

Я не уверен, сколько изменений вы внесли в проект, поэтому, если вышеперечисленное не помогает, просто создайте новый проект и скопируйте свой основной код в новый проект.

Шаг номер 2 был ответом. Благодарю. просто расстроился и какое-то время не работал над этим

daibatzu 03.06.2019 06:58

Да, я думаю, что шаг 2 может вызвать эту проблему. Спасибо за ваш отзыв:)

LoLance 03.06.2019 07:09

Другие вопросы по теме