【问题标题】:Is it possible to build Deterministic Single File assemblies in dotnet/roslyn?是否可以在 dotnet/roslyn 中构建确定性单文件程序集?
【发布时间】:2021-09-23 16:13:00
【问题描述】:

我正在使用 .Net 5 (c#)。

有一个roslyn flag Deterministic=true 给定相同的输入(即源代码和一些其他环境内容)将生成逐位相同的程序集。

当我进行正常构建并多次构建时,这会按预期工作。

但是,这会生成一个包含 121 个文件(所有依赖项,例如 System.*.dll 文件)的输出目录。我想要一个 exe 文件,这就是 PublishSingleFile 标志的作用。但是当我使用 PublishSingleFile 标志时,我不再获得确定性输出。

知道是否有办法使这项工作有效吗?还是不支持这两个标志的组合?

【问题讨论】:

    标签: c# .net-core roslyn .net-5 .net-core-publishsinglefile


    【解决方案1】:

    目前不支持。目前的重点主要是生成可重现的 IL 和验证。

    https://github.com/dotnet/designs/blob/main/accepted/2020/reproducible-builds.md

    构建托管二进制文件涉及许多组件,包括 ResX、XAML->BAML、强命名和 MSBuild,这些组件可以通过无数不同的方式进行自定义。这项工作只关注可执行代码,忽略强命名、资源生成、重新运行源生成器等。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-08-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-08-23
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多