msbuild не может найти файлы в моей папке Assets - PullRequest
0 голосов
/ 28 мая 2019

Я пытаюсь создать свое первое приложение uwp.Я новичок в C #, а также.Я использую инструменты сборки 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', который не является частью полезной нагрузки.[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>

И csproj:

<?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>

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

1 Ответ

0 голосов
/ 31 мая 2019

Я думаю, что-то не хватает в вашем файле .csproj вызвало эту проблему.

Действия по воспроизведению той же проблемы:

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

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

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

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

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

5. Получите ошибку ниже: enter image description here

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

На мой взгляд:

Вы можете сделать что-то подобное, как у меня. Может быть, 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.

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

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

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

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

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

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