我一直试图在可能的视图之间导入已编译视图*.Views.dll
的ASP.NET Core MVC视图。
警告!
我无意在正在编译的资源中添加*.views.dll
文件,但是之后。
为清楚起见,正在运行的程序必须从文件夹中获取文件并通过将汇编文件的内容添加到其视图中来读取文件
要获取更多信息,我将为您提供qule中语音链接的链接
此外,我不想使用嵌入式资源,因为视图仍然清晰可见。
我尝试过
services.AddMvc().ConfigureApplicationPartManager(apm =>{
var part = new AssemblyPart(AssemblyLoadContext.Default.LoadFromAssemblyPath("C:\\Users\\gianf\\source\\repos\\ViewTestPlugin2\\plug\\bin\\Debug\\netcoreapp2.1\\plug.Views.dll"));
apm.ApplicationParts.Add(part);
});
已解决!
看着* .views.dll文件的汇编,我注意到了
[assembly: ProvideApplicationPartFactory("Microsoft.AspNetCore.Mvc.ApplicationParts.CompiledRazorAssemblyApplicationPartFactory, Microsoft.AspNetCore.Mvc.Razor")]
因此,我尝试像这样手动设置它:
services.AddMvc().ConfigureApplicationPartManager(apm =>
{
var a = new CompiledRazorAssemblyApplicationPartFactory();
foreach (var b in a.GetApplicationParts(AssemblyLoadContext.Default.LoadFromAssemblyPath("C:\\Users\\gianf\\source\\repos\\ViewTestPlugin2\\plug\\bin\\Debug\\netcoreapp2.1\\plug.Views.dll")))
apm.ApplicationParts.Add(b);
});
所以它起作用了,我认为AssemblyPart坏了