.net core mvc部署到win10本地的Ubuntu上

发布于:2025-07-09 ⋅ 阅读:(11) ⋅ 点赞:(0)

将一个 .NET Core MVC 应用部署到 Windows 10 上通过 WSL 安装的 Ubuntu 环境中,可以分为几个步骤来完成。以下是详细的指南:

准备工作

  1. 确保你的Ubuntu环境已安装.NET SDK

    • 首先,你需要在WSL中的Ubuntu上安装.NET SDK。可以通过以下命令检查是否已经安装了.NET SDK,如果没有则需要进行安装:
       bash 

      深色版本

      dotnet --version
    • 如果没有安装,可以参考官方文档来进行安装。
  2. 准备好你的.NET Core MVC项目

    • 在Windows环境中开发并测试好你的.NET Core MVC应用。
    • 确保你能够通过dotnet run命令成功运行该项目。

部署步骤

  1. 将项目文件传输到Ubuntu环境

    • 可以使用上述提到的方法(例如直接访问Windows文件系统 /mnt/c/...)将你的项目文件复制到Ubuntu环境下。或者使用Git等版本控制工具克隆代码仓库到Ubuntu。
  2. 发布项目

    • 进入到你的项目目录,并执行发布命令生成适用于生产环境的输出。你可以选择框架依赖或独立部署模式。这里以框架依赖为例:
       bash 

      深色版本

      dotnet publish -c Release -o ./publish
    • 此命令会在项目目录下创建一个 publish 文件夹,里面包含了所有运行应用程序所需的文件。
  3. 配置Kestrel或反向代理(如Nginx)

    • 默认情况下,.NET Core应用程序使用Kestrel作为Web服务器。对于简单的应用场景,你可以直接运行发布的应用程序:
       bash 

      深色版本

      cd ./publish
      dotnet YourAppName.dll
    • 对于生产环境,建议配置反向代理如Nginx来转发请求到Kestrel。首先需要在Ubuntu上安装Nginx:
       bash 

      深色版本

      sudo apt update
      sudo apt install nginx
    • 接着,配置Nginx站点来指向你的.NET Core应用。这通常涉及到编辑Nginx的配置文件(位于 /etc/nginx/sites-available/default 或新建一个配置文件),添加类似下面的配置:
       nginx 

      深色版本

      server {
          listen        80;
          server_name   your_domain_or_IP;
      
          location / {
              proxy_pass         http://localhost:5000;
              proxy_http_version 1.1;
              proxy_set_header   Upgrade $http_upgrade;
              proxy_set_header   Connection keep-alive;
              proxy_set_header   Host $host;
              proxy_cache_bypass $http_upgrade;
              proxy_set_header   X-Forwarded-For $proxy_add_x_forwarded_for;
              proxy_set_header   X-Forwarded-Proto $scheme;
          }
      }
  4. 启动应用并设置开机自启

    • 使用systemd或其他服务管理工具为你的.NET Core应用创建一个服务,以便于管理应用的生命周期和实现开机自启动。

通过以上步骤,你应该能够在Windows 10上的Ubuntu WSL环境中成功部署一个.NET Core MVC应用程序。记得根据具体需求调整配置,比如安全设置、日志管理等。

.NET Core MVC 项目文件从 Windows 10 系统复制到 WSL 中的 Ubuntu 环境下,以便进行后续部署。


✅ 前提条件

  • 你已经安装了 Windows 10 + WSL2(推荐)
  • WSL 中已安装 Ubuntu(如 Ubuntu 20.04、22.04)
  • 你已经在 Windows 上开发好了 .NET Core MVC 项目
  • 你可以通过命令行访问 Ubuntu(输入 wsl 启动)

📁 假设你的项目在 Windows 上的位置:


深色版本

C:\Users\YourWindowsUsername\source\repos\MyMvcApp

你想把这个项目复制到 WSL 的 Ubuntu 中的路径是:


深色版本

/home/yourUbuntuUsername/myapps/MyMvcApp

🔧 步骤详解

1️⃣ 打开 Ubuntu(WSL)

在 Windows 中打开 PowerShell 或 CMD,输入:


bash

深色版本

wsl

你现在就进入了 Ubuntu 的终端环境。


2️⃣ 查看 Windows 文件系统挂载点

在 WSL 中,Windows 的磁盘会自动挂载在 /mnt/ 下。例如:

  • C 盘:/mnt/c
  • D 盘:/mnt/d

所以你可以在 Ubuntu 中访问你的 Windows 项目:


bash

深色版本

ls /mnt/c/Users/YourWindowsUsername/source/repos/MyMvcApp

⚠️ 注意:替换 YourWindowsUsername 为你的实际 Windows 用户名。


3️⃣ 在 Ubuntu 中创建目标目录(可选)

如果你想把项目复制到 Ubuntu 的本地文件系统中(推荐),先创建一个目录:


bash

深色版本

mkdir -p ~/myapps/MyMvcApp

4️⃣ 复制文件(方式一:使用 cp 命令)

使用 cp 命令将项目从 Windows 路径复制到 Ubuntu 本地路径:


bash

深色版本

cp -r /mnt/c/Users/YourWindowsUsername/source/repos/MyMvcApp/* ~/myapps/MyMvcApp/

-r 表示递归复制整个目录及其内容


5️⃣ 验证复制是否成功

进入复制后的目录并查看文件:


bash

深色版本

cd ~/myapps/MyMvcApp
ls

你应该能看到 .csproj 文件、Program.csStartup.cs(或 Program.cs,取决于 .NET 版本)、ViewsControllers 等文件和目录。


6️⃣ 恢复 NuGet 包(如果需要)

如果你只是复制了源码,没有发布,建议运行以下命令恢复依赖:


bash

深色版本

dotnet restore

7️⃣ 运行项目测试一下(可选)


bash

深色版本

dotnet run

默认情况下,应用会在 http://localhost:5000 上运行。你可以在 Windows 浏览器中访问这个地址测试是否部署成功。


💡 小技巧:直接从 Windows 使用 bash 命令复制

你也可以直接在 PowerShell 或 CMD 中调用 WSL 命令来完成复制操作:


powershell

深色版本

wsl cp -r /mnt/c/Users/YourWindowsUsername/source/repos/MyMvcApp /home/yourUbuntuUsername/myapps/

📌 提示与注意事项

内容 说明
文件权限问题 如果你在 Ubuntu 中修改过文件,再回到 Windows 修改,有时会出现权限警告。建议主要在一个系统中编辑文件。
性能优化 WSL2 对 /mnt/ 路径下的文件读写性能不如 Ubuntu 本地文件系统,建议将项目复制到 Ubuntu 本地路径(如 /home/...)后再运行。
编辑器建议 可以使用 VS Code + Remote - WSL 插件,直接在 Ubuntu 环境中编辑代码,无需手动复制。

✅ 总结

操作 命令
查看 Windows 项目 ls /mnt/c/Users/YourUser/path/to/project
创建 Ubuntu 本地目录 mkdir -p ~/myapps/MyMvcApp
复制项目到 Ubuntu cp -r /mnt/c/.../MyMvcApp/* ~/myapps/MyMvcApp/
恢复项目依赖 dotnet restore
运行项目 dotnet run

网站公告

今日签到

点亮在社区的每一天
去签到