问题
So I just updated my app to use ASP.NET Core RC2. I published it using Visual Studio and noticed that my Area is not published:
This snapshot is from src\MyProject\bin\Release\PublishOutput
:
And here is my Area, named Admin
in Visual Studio:
Am I missing an step or what?
回答1:
You need to configure your publishOptions
section of project.json
to include the Areas
folder which is not included in the default template:
ex:
"publishOptions": {
"include": [
"wwwroot",
"Views",
"appsettings.json",
"web.config",
"Areas"
],
"exclude": [ "bin" ]
}
Update
If you want to ensure that your controllers and other .cs files are not included, you can blacklist with the exclude
property of publishOptions
like so:
"publishOptions": {
"include": [ "wwwroot", "Views", "appsettings.json", "web.config", "Areas" ],
"exclude": [ "**.user", "**.vspscc", "**.cs", "bin" ]
}
If you prefer more restrictive security, you can simply whitelist .cshtml files instead of including the entire Areas folder like so:
"publishOptions": {
"include": [ "wwwroot", "**.cshtml", "appsettings.json", "web.config" ],
"exclude": [ "bin" ]
}
Note
Be careful using wildcards like **.cshtml
as they will include all files in all subdirectories, including the bin
directory. If you have any views in your bin
folder from a previous build, they will be duplicated again inside the new build output until the path becomes too long.
回答2:
Adding Areas will copy everything including the .cs files.
so should add "Areas/**/Views/**/*.cshtml"
and "Areas/ * /.cshtml"
under publish options instead of only "Areas"
来源:https://stackoverflow.com/questions/37326068/asp-net-core-rc2-area-not-published