问题描述
我正在使用最新的.Net 5 RC2。由于某些原因,当我运行debug时,工作目录设置为项目目录,而不是“ 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文件的构建过程中将它们标记为复制到ouput目录:
<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))); ;