Skip to content

Microsoft.Windows.SDK.Buildtools.MSIX will still try to generate the .appsym even AppxSymbolPackageEnabled="false" #6183

@zhuxb711

Description

@zhuxb711

Describe the bug

Nuget: Microsoft.Windows.SDK.Buildtools.MSIX | Version: 1.7.251221100
Location: Microsoft.Windows.SDK.BuildTools.MSIX.Packaging.targets

Target _GenerateAppxSymbolPackage will not check AppxSymbolPackageEnabled and will always being executed

<Target Name="_GenerateAppxSymbolPackage" Condition="Exists ('$(MsPdbCmfExeFullpath)') And '@(PDBPayload)' != ''" Inputs="$(MSBuildAllProjects);@(PDBPayload);@(FinalAppxManifest)" Outputs="$(AppxSymbolPackageOutput)" DependsOnTargets="_EnsurePdbCmfExeFullPath">
  <PropertyGroup>
    <ReconstituteFastlinkPdbs Condition="'$(ReconstituteFastlinkPdbs)' == ''">true</ReconstituteFastlinkPdbs>
  </PropertyGroup>

  <WinAppSdkGenerateAppxSymbolPackage MsPdbCmfExeFullpath="$(MsPdbCmfExeFullpath)"
                             InputPdbs="@(PDBPayload)"
                             ProjectName="$(MSBuildProjectName)"
                             StripPrivateSymbols="$(StripPrivateSymbols)"
                             IntermediateSymbolRoot="$(AppxSymbolIntermediateDir)"
                             ReconstituteFastlinkPdbs="$(ReconstituteFastlinkPdbs)"
                             AppxSymbolPackageOutput="$(AppxSymbolPackageOutput)"
                             VsTelemetrySession="$(VsTelemetrySession)">
    <Output TaskParameter="OutputPdbs" ItemName="OutputPdbFiles" />
  </WinAppSdkGenerateAppxSymbolPackage>

  <ItemGroup>
    <FinalAppxSymbolPackageItem Include="$(AppxSymbolPackageOutput)" />
    <PackagingFileWrites Include="@(FinalAppxSymbolPackageItem)" />
    <FileWrites Include="@(OutputPdbFiles)" />
    <PackagingDirectoryWrites Include="$(AppxSymbolIntermediateDir)" />
  </ItemGroup>

  <Message Text="$(MSBuildProjectName) -> $(AppxSymbolPackageOutput)" />
</Target>

Another similar Target _GenerateAppxUploadSymbolPackage will check the AppxSymbolPackageEnabled

<Target Name="_GenerateAppxUploadSymbolPackage"
        Condition="'$(AppxSymbolPackageEnabled)' == 'true' and 
                   '@(PDBUploadPayload)' != '' and 
                   '$(BuildAppxUploadPackageForUap)' == 'true'"
        Inputs="$(MSBuildAllProjects);@(PDBUploadPayload);@(FinalAppxManifest)"
        Outputs="$(AppxUploadSymbolPackageOutput)">

  <PropertyGroup>
    <ReconstituteFastlinkPdbs Condition="'$(ReconstituteFastlinkPdbs)' == ''">true</ReconstituteFastlinkPdbs>
    <MsPdbCmfExeFullpath Condition="'$(MSBuildExtensionsPath64)' != ''">$(PdbCmfx64ExeFullPath)</MsPdbCmfExeFullpath>
    <MsPdbCmfExeFullpath Condition="'$(MSBuildExtensionsPath64)' == ''">$(PdbCmfx86ExeFullPath)</MsPdbCmfExeFullpath>
  </PropertyGroup>

  <WinAppSdkGenerateAppxSymbolPackage MsPdbCmfExeFullpath="$(MsPdbCmfExeFullpath)"
                             InputPdbs="@(PDBUploadPayload)"
                             ProjectName="$(MSBuildProjectName)"
                             IntermediateSymbolRoot="$(AppxUploadSymbolIntermediateDir)"
                             StripPrivateSymbols="$(StripPrivateSymbols)"
                             ReconstituteFastlinkPdbs="$(ReconstituteFastlinkUploadPdbs)"
                             AppxSymbolPackageOutput="$(AppxUploadSymbolPackageOutput)"
                             VsTelemetrySession="$(VsTelemetrySession)">
    <Output TaskParameter="OutputPdbs" ItemName="OutputPdbUploadFiles" />
  </WinAppSdkGenerateAppxSymbolPackage>

  <ItemGroup>
    <FinalAppxUploadSymbolPackageItem Include="$(AppxUploadSymbolPackageOutput)" />
  </ItemGroup>

  <ItemGroup>
    <PackagingFileWrites Include="@(FinalAppxUploadSymbolPackageItem)" />
    <FileWrites Include="@(OutputPdbUploadFiles)" />
    <PackagingDirectoryWrites Include="$(AppxUploadSymbolIntermediateDir)" />
  </ItemGroup>

  <Message Text="$(MSBuildProjectName) -> $(AppxUploadSymbolPackageOutput)" />

</Target>

It's very confusing, I'm wondering did _GenerateAppxSymbolPackage is duplicated with _GenerateAppxUploadSymbolPackage? If yes, please remove it. Or at least _GenerateAppxSymbolPackage should check whether AppxSymbolPackageEnabled is false and should never being executed

Steps to reproduce the bug

Build the application in SideloadOnly/StoreUpload/CI

Expected behavior

Once AppxSymbolPackageEnabled set to false, no appsym related task should be executed

Screenshots

No response

NuGet package version

Windows App SDK 1.8.4: 1.8.260101001

Packaging type

Packaged (MSIX)

Windows version

Windows 11 version 24H2 LTSC (26100, June Update)

IDE

Visual Studio 2022

Additional context

No response

Metadata

Metadata

Assignees

No one assigned

    Labels

    area-PackagingTopics related to packaging behavior of Windows App SDKneeds-triage

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions