Skip to content

编译 WPF 框架

https://github.com/dotnet/wpf/blob/main/Documentation/developer-guide.md

Nuget.config 中添加 package source

<?xml version="1.0" encoding="utf-8"?>
<!-- This file should be kept in sync across https://www.github.com/dotnet/wpf and dotnet-wpf-int repos. -->
<configuration>
  <packageSources>
    <clear />
    <add key="dotnet-eng" value="https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-eng/nuget/v3/index.json" />
    <add key="dotnet-libraries-transport" value="https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-libraries-transport/nuget/v3/index.json" />
    <add key="dotnet-tools" value="https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-tools/nuget/v3/index.json" />
    <add key="dotnet-public" value="https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public/nuget/v3/index.json" />
    <add key="dotnet7" value="https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet7/nuget/v3/index.json" />
    <add key="dotnet7-transport" value="https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet7-transport/nuget/v3/index.json" />
    <add key="dotnet8" value="https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet8/nuget/v3/index.json" />
    <add key="dotnet8-transport" value="https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet8-transport/nuget/v3/index.json" />
    <add key="dotnet9" value="https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet9/nuget/v3/index.json" />
    <add key="dotnet9-transport" value="https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet9-transport/nuget/v3/index.json" />
    <add key="dotnet10" value="https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet10/nuget/v3/index.json" />
    <add key="dotnet10-transport" value="https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet10-transport/nuget/v3/index.json" />
    <add key="dotnet11" value="https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet11/nuget/v3/index.json" />
    <add key="dotnet11-transport" value="https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet11-transport/nuget/v3/index.json" />
  </packageSources>
  <disabledPackageSources />


  <packageSourceMapping>

    <packageSource key="dotnet-eng">
      <package pattern="*" />
    </packageSource>

        <packageSource key="dotnet-libraries-transport">
      <package pattern="*" />
    </packageSource>

        <packageSource key="dotnet-tools">
      <package pattern="*" />
    </packageSource>

        <packageSource key="dotnet-public">
      <package pattern="*" />
    </packageSource>

        <packageSource key="dotnet7">
      <package pattern="*" />
    </packageSource>

        <packageSource key="dotnet7-transport">
      <package pattern="*" />
    </packageSource>

        <packageSource key="dotnet8">
      <package pattern="*" />
    </packageSource>

        <packageSource key="dotnet9">
      <package pattern="*" />
    </packageSource>

        <packageSource key="dotnet9-transport">
      <package pattern="*" />
    </packageSource>

        <packageSource key="dotnet10">
      <package pattern="*" />
    </packageSource>

        <packageSource key="dotnet10-transport">
      <package pattern="*" />
    </packageSource>

        <packageSource key="dotnet11">
      <package pattern="*" />
    </packageSource>

        <packageSource key="dotnet11-transport">
      <package pattern="*" />
    </packageSource>


  </packageSourceMapping>

</configuration>

调用 .\build.cmd 进行构建

  • the default build of wpf repository using ./build.cmd is x86.
  • build the repo using the command .\build.cmd -clean ./build.cmd -plat x64

    dotnet build-server shutdown
    .\build.cmd -clean
    .\build.cmd -plat x64
    

使 WPF app 使用本地构建的 WPF 程序集

    <PropertyGroup>
      <OutputType>WinExe</OutputType>
      <TargetFramework>net10.0-windows</TargetFramework>
      <UseWPF>true</UseWPF>
    </PropertyGroup>

    <PropertyGroup>
      <WpfRepoRoot>C:\wpf</WpfRepoRoot>
    </PropertyGroup>
    <Import Project="$(WpfRepoRoot)\eng\wpf-debug.targets" />
  • 应用版本要和本地生成的 wpf 版本一致:

    D:\OpenSources\wpf\artifacts\bin\PresentationCore\x64\Debug\net10.0