【问题标题】:AddRazorRuntimeCompilation not working when working directory is changed更改工作目录时,AddRazorRuntimeCompilation 不起作用
【发布时间】:2021-02-10 02:24:15
【问题描述】:

我正在使用最新的 .Net 5 RC2。由于某种原因,当我运行调试时,工作目录设置为项目目录,而不是“bin\Debug\net5.0-windows”。这会导致一些问题,因为我使用了来自其他项目的一些共享文件(它们在构建时都被复制到一个文件夹中),所以在 $(TargetDir) 中有工作目录对我来说很重要。我尝试通过两种方式实现它:

像这样更改launchSettings.json:

  "profiles": {
    "WWW": {
      "commandName": "Project",
      "workingDirectory": "$(TargetDir)",
      "environmentVariables": {
        "ASPNETCORE_ENVIRONMENT": "Development",
      },
      "applicationUrl": "https://localhost:5001;http://localhost:5000"
    }
  }
}

像这样更改 .csproj:

<PropertyGroup>
    <RunWorkingDirectory>$(MSBuildProjectDirectory)\bin\$(Configuration)\$(TargetFramework)\</RunWorkingDirectory>
</PropertyGroup>

这两种方法都有效,但是当我更改工作目录时,RazorRuntimeCompilation 不起作用。有什么建议吗?

【问题讨论】:

    标签: asp.net razor runtime-compilation .net-5


    【解决方案1】:

    由于您的工作目录不再包含 cshtml 文件,您需要在 csproj 文件中标记它们以便在构建期间复制到输出目录:

    <ItemGroup>
      <Content Update="**\*.cshtml" CopyToOutputDirectory="PreserveNewest" />
      <Content Update="**\*.razor" CopyToOutputDirectory="PreserveNewest" />
    </ItemGroup>
    

    请注意,这意味着您无法在 IDE 中应用实时编辑。

    【讨论】:

      【解决方案2】:

      这是我找到的解决方案:

      var Dir = Path.GetFullPath(AppContext.BaseDirectory + "../../../"); 
      builder.AddRazorRuntimeCompilation(options => options.FileProviders.Add(new PhysicalFileProvider(Dir))); ;
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-01-23
        • 2016-03-14
        • 1970-01-01
        相关资源
        最近更新 更多