更改工作目录时 AddRazorRuntimeCompilation 不起作用

AddRazorRuntimeCompilation not working when working directory is changed

我使用的是最新的 .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 不起作用。有什么建议吗?

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

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

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

这是我找到的解决方案:

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