gpt4 book ai didi

c# - AppContext.BaseDirectory vs Assembly.GetEntryAssembly().发布应用程序后位置是否相同?

转载 作者:行者123 更新时间:2023-12-04 12:33:46 24 4
gpt4 key购买 nike

我正在开发 ASP.NET Core 3.1 Web API并拥有我的 swagger设置。我已将 swagger 文档添加到我的项目中。

  • 右键单击 API Project -> Build -> Output

  • enter image description here
  • 这将生成 xxx.xml文件在我的项目根文件夹中。
  • 右键单击 -> xxx.xml -> Copy To Output Directory -> Copy Always
  • 我指的是xxx.xml Startup.cs 中 swagger 配置中的文件如下

  • var xmlCommentsFile = $"{Assembly.GetExecutingAssembly().GetName().Name}.xml";
    var xmlCommentsFullPath = Path.Combine(AppContext.BaseDirectory, xmlCommentsFile);

    options.IncludeXmlComments(xmlCommentsFullPath);
    在这里我应该使用 AppContext.BaseDirectoryAssembly.GetEntryAssembly().Location ?
    在我的本地开发中运行它时,我可以看到它进入 bin\Debug\netcoreapp3.1\但发布后文件夹结构会相同吗?。那么发布和部署后会选择正确的路径吗?

    最佳答案

    System.AppContext.BaseDirectory应该指向包含托管入口点程序集的文件夹,无论是 bin\Debug\netcoreapp3.1\ , bin\x64\release\netcoreapp3.1\或者别的地方。
    您可以 for example使用此属性获取单个文件可执行文件的实际位置,该文​​件在运行之前从一个文件夹中提取并复制到另一个临时文件夹中。

    关于c# - AppContext.BaseDirectory vs Assembly.GetEntryAssembly().发布应用程序后位置是否相同?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63470279/

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