自含式(Self-contained)的.NET Core Web应用是指一个可以在没有安装.NET Core运行时的目标机器上运行的应用程序。这种类型的部署包含了应用程序所需的所有依赖项,包括.NET Core运行时和库,因此它可以在任何支持它的操作系统上运行,无需用户单独安装.NET Core SDK或运行时。
以下是在Visual Studio中发布自含式.NET Core Web应用的步骤:
以下是一个简单的.NET Core Web应用的基本结构:
using Microsoft.AspNetCore.Builder;
using Microsoft.AspNetCore.Hosting;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Hosting;
namespace SelfContainedApp
{
public class Startup
{
public void ConfigureServices(IServiceCollection services)
{
services.AddControllersWithViews();
}
public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
if (env.IsDevelopment())
{
app.UseDeveloperExceptionPage();
}
else
{
app.UseExceptionHandler("/Home/Error");
app.UseHsts();
}
app.UseHttpsRedirection();
app.UseStaticFiles();
app.UseRouting();
app.UseAuthorization();
app.UseEndpoints(endpoints =>
{
endpoints.MapControllerRoute(
name: "default",
pattern: "{controller=Home}/{action=Index}/{id?}");
});
}
}
}
问题:发布后的应用在目标机器上无法运行。
原因:
解决方法:
ldd
(Linux)或Dependency Walker
(Windows)来检查缺少的依赖项,并手动安装它们。通过以上步骤和方法,可以有效解决自含式.NET Core Web应用部署中遇到的常见问题。
领取专属 10元无门槛券
手把手带您无忧上云