gpt4 book ai didi

msbuild - msbuild 的 GenerateRuntimeConfigurationFiles 的目的是什么?

转载 作者:行者123 更新时间:2023-12-04 23:15:09 31 4
gpt4 key购买 nike

我将一个 netcore1.1 项目升级到新的 VS2017/csproj。

仅在我的测试项目中,它添加了:

<PropertyGroup>
<GenerateRuntimeConfigurationFiles>true</GenerateRuntimeConfigurationFiles>
</PropertyGroup>

我做了 some digging发现它在 bin 目录中生成了这些文件:
  • ProjectName.Tests.runtimeconfig.json
  • ProjectName.Tests.runtimeconfig.dev.json

  • 这个设置和这些文件是什么,我为什么需要它们?

    为什么它们只为我的测试项目生成?

    最佳答案

    这些特定于 .NET Core 项目并指定

  • 要使用的运行时和版本。通常 Microsoft.NETCore.App . “主机框架解析器”在 shared 中查找匹配的文件夹。文件夹(例如 C:\Program Files\dotnet\shared\Microsoft.NETCore.App\1.1.2 )。这一点很重要,因为可以并行安装多个运行时,并且主机需要知道在您运行时使用哪一个 dotnet myapp.dll .
  • 运行时的其他选项。最突出的可能是在“桌面”和“服务器”模式之间切换的垃圾收集设置。当您设置 <ServerGarbageCollection>true</ServerGarbageCollection>在 csproj 文件中,这将导致 runtimeconfig.json 中的值要设置。 (对于 Web 项目,此属性默认为 true)
  • 主机的其他选项。 additionalProbingPath例如设置为包含已恢复包的本地 NuGet 缓存。您可能已经注意到,引用 NuGet 包不会导致其 dll 文件被复制到输出目录(默认情况下)。主机使用额外的探测路径来查找在此位置引用的包/dll(实际上它是一个两步查找:deps.json 告诉主机要使用哪些包,此属性告诉在哪里查找此包)。由于这仅用于开发并且不应最终出现在已发布的输出中(因为这意味着依赖于目标上的 NuGet 缓存),所以此设置被放入 runtimeconfig.dev.json .

  • “经典” .NET Framework 项目也有让应用程序设置一些运行时设置的概念。这是通过使用 .exe.config 来完成的。文件(如果存在,将从项目中的 App.config 文件构建)。你可以想到 runtimeconfig.json作为“新的 .exe.config”,但只有一些重叠的问题。

    关于msbuild - msbuild 的 GenerateRuntimeConfigurationFiles 的目的是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44174407/

    31 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com