Я пытаюсь создать свое первое приложение 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>
Пожалуйста помоги
Я просто использую команду msbuild. Также я использую только инструменты сборки Visual Studio 2019. У меня нет полной Visual Studio.
Вот что я говорю. Я просто набираю «msbuild» в командной строке, и он делает все остальное. У меня уже есть файл csproj, поэтому я считаю, что он берется оттуда.
Вот что я говорю. Я просто набираю «msbuild» в командной строке, и он делает все остальное. У меня уже есть файл csproj, поэтому я считаю, что он берется оттуда.
@daibatzu Привет, есть новости по этой проблеме? Пожалуйста, дайте мне знать, если это полезно или нет.
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
Вы можете выполнить мои простые шаги, чтобы найти причину проблемы.
По моему мнению:
Вы можете выполнить аналогичную операцию, как у меня. Может быть 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 был ответом. Благодарю. просто расстроился и какое-то время не работал над этим
Да, я думаю, что шаг 2 может вызвать эту проблему. Спасибо за ваш отзыв:)
Как насчет результата сборки при сборке проекта UWP с помощью Visual Studio на локальном компьютере? И устанавливали ли вы рабочую нагрузку UWP при установке инструментов сборки VS? Также поделитесь с нами своей командной строкой MSBuild, чтобы мы могли воспроизвести ее на моей стороне.