5

Mam pakiet nuget, który ma własny panel sterowania mvc, z kontrolerami, widokami i trasami.Jak osadzać pliki zasobów podczas kompilacji w Visual Studio 2017?

Ten pakiet nuget jest importowany do innych aplikacji internetowych .net.

W Visual Studio 2015, z rdzeniem .net, użyłem następującego kodu, aby skompilować widoki jako zasoby, umożliwiając ich odnalezienie za pomocą maszynki do golenia, a następnie renderowane poprawnie.

Na project.json (Nuget):

"buildOptions": { 
    "embed": "**/Views/**/*.cshtml" 
    } 

Na Startup.cs (aplikacji WWW):

public void ConfigureServices(IServiceCollection services) 
{ 
    services.Configure<RazorViewEngineOptions>(options => 
    { 
     options.FileProviders.Add(new CompositeFileProvider(
      new EmbeddedFileProvider(
       typeof(HomeController).GetTypeInfo().Assembly, 
       "Some.Namespace")) 
        ); 
    }); 

    return new IuguPortalBuilder(services); 
} 

W Visual Studio 2017 r file.doesn't project.json istnieje już nie mogę znaleźć nowego sposobu na umieszczenie moich widoków w pakiecie nuget.

Jak mogę umieścić swoje widoki?

Odpowiedz

10

W Solution Explorer kliknij prawym przyciskiem myszy żądany plik, kliknij Properties iw otwartym oknie ustawić Build action do Embedded resource - wszystko jak w dawnych czasach :)

To stworzy poniższe linie do pliku *.csproj:

<ItemGroup> 
    <EmbeddedResource Include="Views\Home\Index.cshtml" /> 
</ItemGroup> 

Teraz program MSBuild doda ten plik jako zasób osadzony do zespołu.

+0

Witam @Dmitry! Czy mogę zaimportować wszystkie moje widoki naraz za pomocą symbolu wieloznacznego, takiego jak "Views/*/*. Cshtml"? –

+0

@ Collos, nie wiem, po prostu spróbuj i udostępnij :) – Dmitry

+2

Właśnie wypróbowany na VS2017: zadziałało dla mnie z formatem jak "Include =" ** \ Translations \ Resource. *. Resx "' – Myobis

Powiązane problemy