DotNet.ReproducibleBuilds 1.2.4

前缀已保留
dotnet add package DotNet.ReproducibleBuilds --version 1.2.4                
NuGet\Install-Package DotNet.ReproducibleBuilds -Version 1.2.4                
此命令旨在 Visual Studio 的包管理器控制台中使用,因为它使用 NuGet 模块的 Install-Package 版本。
<PackageReference Include="DotNet.ReproducibleBuilds" Version="1.2.4">
  <PrivateAssets>all</PrivateAssets>
  <IncludeAssets>runtime; build; native; contentfiles; analyzers</IncludeAssets>
</PackageReference>                
对于支持 PackageReference 的项目,请将此 XML 节点复制到项目文件中以便引用此包。
paket add DotNet.ReproducibleBuilds --version 1.2.4                
#r "nuget: DotNet.ReproducibleBuilds, 1.2.4"                
#r 指令可用于 F# Interactive 和 Polyglot Notebooks。将其复制到交互式工具或脚本的源代码中以便引用包。
// Install DotNet.ReproducibleBuilds as a Cake Addin
#addin nuget:?package=DotNet.ReproducibleBuilds&version=1.2.4

// Install DotNet.ReproducibleBuilds as a Cake Tool
#tool nuget:?package=DotNet.ReproducibleBuilds&version=1.2.4                

DotNet.ReproducibleBuilds

此存储库生成一个包,它可以在一步中启用可重复构建,并记录有助于通过隔离启用可重复性的 MSBuild 设置。

此存储库记录了各种 MSBuild 设置以实现可重复性,并提供了两个 nuget 包来启用这些设置的一些功能。

这些包包括:

  • DotNet.ReproducibleBuilds
  • DotNet.ReproducibleBuilds.Isolated

DotNet.ReproducibleBuilds nuget 包

强烈建议所有项目启用这些设置,无论是通过添加此包还是按照以下说明手动操作: https://devblogs.microsoft.com/dotnet/producing-packages-with-source-link/

此包设置以下属性

  • PublishRepositoryUrl = true
  • EmbedUntrackedSources = true
  • DebugType = embedded。如果您喜欢,可以在项目中指定 portable,但您还需要上传该 .snupkg 文件。
  • IncludePackageReferencesDuringMarkupCompilation = true(使 WPF 修复生效)
  • ContinuousIntegrationBuild = true 在 CI 系统上

它还为所有存储库类型添加了 SourceLink 依赖项(将自动使用正确的一个)。

有关使用Source Link进行调试的更多信息,请参阅此处

使用方法

将以下内容添加到您的Directory.Build.props文件中,以便将包添加到解决方案中的所有项目 -- 使用最新版本包。

<ItemGroup>
  <PackageReference Include="DotNet.ReproducibleBuilds" Version="1.1.1" PrivateAssets="All"/>
</ItemGroup>

需要MSBuild 16.10来生成可以完整复现的二进制文件。您需要Visual Studio 2019 16.10和/或.NET 5.0.300 SDK。如果您使用的是较低版本,您将收到警告。

预发布版包可在以下NuGet源中获取:https://pkgs.dev.azure.com/dotnet/Projects/_packaging/ReproducibleBuilds/nuget/v3/index.json

DotNet.ReproducibleBuilds.隔离的文档和nuget包

强烈建议所有项目启用这些设置,无论是通过添加此包还是手动,如Documentation/Reproducible-MSBuild中所述。

此软件包配置了各种属性和项目组,以防止您的构建意外地依赖于您的源代码库未描述的其他已安装软件。所有构建依赖项都应来自您选择的MSBuild SDK,或来自从您的包源恢复的NuGet包。

如果使用相同版本的SDK和相同的NuGet源检查出相同的提交,您应该得到相同的构建结果。

使用方法

将以下内容添加到您的项目顶部或Directory.Build.props文件中

<Sdk Name="DotNet.ReproducibleBuilds.Isolated" Version="1.1.1" />

已在MSBuild 16.7上测试(撰写本文时的最新长期支持版)。

贡献

有关向此项目贡献的信息,请参阅CONTRIBUTING.md

此项目采用了贡献者契约中定义的行为准则,以阐明我们社区中预期的行为。有关更多信息,请参阅.NET基金会行为准则

许可证

此项目使用MIT许可证授权。

.NET基金会

Dotnet.ReproducibleBuilds是.NET基金会项目

您应该看看这些相关项目

此包中没有任何受支持的框架资产。

了解更多有关目标框架.NET标准的信息。

此软件包没有依赖项。

NuGet包 (2)

显示依赖DotNet.ReproducibleBuilds的前两个NuGet包

下载
FSharp.AWS.DynamoDB

一个用于AWS DynamoDB SDK的惯用F#包装器。

AspireDashboardHelper

一个辅助库,可以将Aspire Dashboard docker镜像添加到您的项目中。

GitHub存储库 (55)

显示依赖DotNet.ReproducibleBuilds的前五个最受欢迎的GitHub存储库

存储库 星标
dotnet/Silk.NET
这是一个高速的OpenGL、OpenCL、OpenAL、OpenXR、GLFW、SDL、Vulkan、Assimp、WebGPU和DirectX绑定库,您母亲曾经警告过您。
morelinq/MoreLINQ
对LINQ to Objects的扩展。
elastic/elasticsearch-net
这是一个强类型的Elasticsearch客户端库,允许您与之交互。它是由Elastic维护和支持的官方客户端。
Dotnet-Boxed/Templates
带有电池的.NET项目模板,提供最少的代码,使您能够快速开始。
oxyplot/oxyplot
一个用于.NET的跨平台绘图库。
版本 下载 上次更新
1.2.4 48,183 6/27/2024
1.1.1 1,572,864 11/11/2021
0.1.66 65,541 7/27/2021
0.1.64 3,349 5/22/2021
0.1.34 859 5/11/2021
0.1.26 4,547 4/30/2021

# 更新日志

## [1.2.0]

### 新增

- [支持传递包引用](https://github.com/dotnet/reproducible-builds/pull/16) - 感谢 @meziantou!
- [在构建环境中存在时添加 RepositoryBranch 包元数据](https://github.com/dotnet/reproducible-builds/pull/27) - 感谢 @kzu!

### 已删除

- [删除自动提供的 .NET Framework 引用包 PackageReference,因为 SDK 已经提供](https://github.com/dotnet/reproducible-builds/pull/33) - 感谢 @MattKotsenas!