如何将规则添加到 *.csproj 中的 .net 核心项目

How to add rules to .net core project in *.csproj

我想向 .net 核心项目添加规则。 在 .net 普通项目中,我可以直接编辑 web.config 文件

实际上我需要在.net核心项目中实现这个

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <location path="." inheritInChildApplications="false">
    <system.webServer>
      <handlers>
        <add name="aspNetCore" path="*" verb="*" modules="AspNetCoreModuleV2" resourceType="Unspecified" />
      </handlers>
      <aspNetCore processPath="dotnet" arguments=".\RazorWeb.dll" stdoutLogEnabled="false" stdoutLogFile=".\logs\stdout" hostingModel="OutOfProcess" />
    </system.webServer>
  </location>
  <system.webServer>
    <rewrite>
     <!---START:ADD THIS RULES-->
      <rules>
        <rule name="httpTohttps" stopProcessing="true">
          <match url="^(.*)$" />
          <conditions>
            <add input="{HTTPS}" pattern="off" ignoreCase="true" />
          </conditions>
          <action type="Redirect" url="https://{HTTP_HOST}/{R:1}" redirectType="Permanent" />
        </rule>
      </rules>
      <!---END:ADD THIS RULES-->
    </rewrite>
  </system.webServer>
</configuration>

好吧,自从我在 .net 核心中介绍以来,我注意到模板项目没有随这个 .config 文件一起提供,但是模板使用 .csproj 文件和 .json 文件来添加配置等。 .

主要思想是如何在 .net 核心项目中实现这一点,我在不同的网站上搜索,微软的文档在这方面对我来说并不完全清楚,我找到的最接近的是这个

https://roslyn-analyzers.readthedocs.io/en/latest/config-analyzer.html 但对我不起作用

看到这个。您应该使用中间件而不是 web.config 来强制执行 https。 https://docs.microsoft.com/en-us/aspnet/core/security/enforcing-ssl?view=aspnetcore-3.1&tabs=visual-studio

您仍然可以在需要时在 .NET Core 项目中包含 web.config 文件。事实上,当您点击发布时会生成一个,而您还没有一个,这可以为您提供一个制作自定义的起点。

执行以下操作之一:

  1. 在添加项目中添加“Web 配置”模板,就像这个答案一样,它很好地包含了一个屏幕截图:
  2. 改为创建您自己的 web.config,并将其设置为始终复制到输出目录。这将取代发布时的 auto-generated。

特别是关于这个文件有很多令人困惑的信息。这是一个体面的问题和体面的答案。 Am confused about web.config in .NET Core