2

My Project Razor Pages を別のアセンブリに配置したいと考えています。これを行うために、次のコードを記述します。

public void ConfigureServices(IServiceCollection services)
{
    var adminAssembly = Assembly.Load(new AssemblyName("App"));
    services.AddMvc().AddApplicationPart(adminAssembly).AddRazorOptions(options =>
    {
        var previous = options.CompilationCallback;
        options.CompilationCallback = context =>
        {
            previous?.Invoke(context);

            context.Compilation = context.Compilation.AddReferences(
                MetadataReference.CreateFromFile(typeof(dodo).Assembly.Location));
        };
    });

    services.Configure<RazorViewEngineOptions>(options =>
    {
        options.FileProviders.Add(new EmbeddedFileProvider(Assembly.Load("App")));
        options.FileProviders.Add(new PhysicalFileProvider(@"C:\Users\soheil\Documents\Visual Studio 2017\Projects\WebApplication5\App"));
    });
}

私の解決策:

devenv_2017-10-10_18-44-26

localhost:5000/SameTodo次のエラーを取得を実行する場合:

1 つ以上のコンパイル参照が欠落しています。プロジェクトが 'Microsoft.NET.Sdk.Web' を参照しており、'PreserveCompilationContext' プロパティが false に設定されていないことを確認してください。

スタック:

型または名前空間名 'SameTodoModel' が見つかりませんでした (using ディレクティブまたはアセンブリ参照がありませんか?) + public global::Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper Html { get; プライベートセット; 型または名前空間名 'SameTodoModel' が見つかりませんでした (using ディレクティブまたはアセンブリ参照がありませんか?) + public global::Microsoft.AspNetCore.Mvc.ViewFeatures.ViewDataDictionary ViewData => (global::Microsoft.AspNetCore .Mvc.ViewFeatures.ViewDataDictionary)PageContext?.ViewData; 型または名前空間名 'SameTodoModel' が見つかりませんでした (using ディレクティブまたはアセンブリ参照がありませんか?) + public SameTodoModel Model => ViewData.Model; タイプまたは名前空間名「SameTodoModel」

falseに設定PreserveCompilationContextしましたが、この問題を解決するにはどうすればよいですか?

4

3 に答える 3