I'm trying to deploy my .net core 2.1 app to IIS server using webdeploy, but after publishing the app there is no folders and files including from outside of wwwroot in publish directory and in the View folder I see only 2 View page and those Views are coming from a different library other than main project but there is no View generated that belongs to the main project.
public static void Main(string[] args)
{
CreateWebHostBuilder(args).UseDefaultServiceProvider(options =>
options.ValidateScopes = false).Build().Run();
}
public static IWebHostBuilder CreateWebHostBuilder(string[] args) =>
WebHost.CreateDefaultBuilder(args)
.UseStartup<Startup>();
// For those 2 Views that are coming from another assembly (this 2 views are present in the Views folder of publish directory)
var myAssembly = typeof(Component).Assembly;
services.AddMvc()
.SetCompatibilityVersion(CompatibilityVersion.Version_2_1)
.AddApplicationPart(myAssembly);
services.Configure<RazorViewEngineOptions>(options =>
{
options.FileProviders.Add(new EmbeddedFileProvider(myAssembly, "MyNS"));
});
//For serving static files from folder call Contents, outside of wwwroot
app.UseStaticFiles();
app.UseStaticFiles(new StaticFileOptions
{
FileProvider = new PhysicalFileProvider(
Path.Combine(_env.ContentRootPath, "Contents")),
RequestPath = "/Contents"
});
<Project Sdk="Microsoft.NET.Sdk.Web">
<PropertyGroup>
<TargetFramework>netcoreapp2.1</TargetFramework>
<UserSecretsId>........</UserSecretsId>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Microsoft.AspNetCore.App" />
<PackageReference Include="Microsoft.AspNetCore.Razor.Tools" Version="1.1.0-preview4-final" />
<PackageReference Include="Microsoft.EntityFrameworkCore" Version="2.2.0-preview3-35497" />
<PackageReference Include="Microsoft.EntityFrameworkCore.Tools" Version="2.2.0-preview3-35497">
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers</IncludeAssets>
</PackageReference>
<PackageReference Include="Microsoft.VisualStudio.Web.CodeGeneration.Design" Version="2.2.0-preview3-35497" />
<PackageReference Include="morelinq" Version="3.0.0" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\Proj.Business\Proj.Business.csproj" />
<ProjectReference Include="..\Proj.Common\Proj.Common.csproj" />
<ProjectReference Include="..\Proj.Data\Proj.Data.csproj" />
<ProjectReference Include="..\MyNS\MyNS.csproj" />
</ItemGroup>
<ItemGroup>
<Folder Include="Contents\" CopyToPublishDirectory="PreserveNewest" />
<Folder Include="PrivateContents\" CopyToPublishDirectory="PreserveNewest" />
</ItemGroup>
</Project>
I get the same result when I publish the app to Azure App Service, What's wrong with my app? is there anything extra to follow deploy asp.net core 2.1 app? please help.
Just change
<Folder Include="Contents\" CopyToPublishDirectory="PreserveNewest" />
<Folder Include="PrivateContents\" CopyToPublishDirectory="PreserveNewest" />
To
<Content Include="Contents\**\*" CopyToPublishDirectory="PreserveNewest" />
<Content Include="PrivateContents\**\*" CopyToPublishDirectory="PreserveNewest" />