更改工作目录时 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))); ;
我使用的是最新的 .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))); ;