You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

.NET 7下移动.exe文件后程序未更新的问题咨询

问题原因与解决办法

核心原因:.NET 7的框架依赖部署(FDD)特性

升级到.NET 7后,如果你的项目采用框架依赖部署模式编译,生成的.exe只是一个轻量级引导程序——真正承载业务代码的是同目录下与exe同名的.dll文件(比如arbitrage2.dll)。这个引导程序的作用只是找到并加载对应dll以及.NET运行时环境。

你之前只复制exe到arbitrage4目录时,没有同步复制最新的dll文件,而arbitrage4目录里残留了旧版本的dll,导致引导程序加载了旧代码。直接编译到arbitrage4目录时,编译器会自动替换掉旧的dll,所以能正常运行最新代码。

验证与解决方法

  • 确认编译模式:查看arbitrage2目录,除了exe文件,是否存在同名的.dll文件。如果有,说明当前是框架依赖模式。
  • 临时修复:复制exe时,把同目录下所有.dll、配置文件等相关文件一起复制到arbitrage4目录,覆盖旧文件。
  • 永久解决(独立部署):切换到独立部署模式编译,生成的exe会包含所有代码和必要的.NET运行时,单独复制exe即可运行最新版本:
    • 在项目的.csproj文件中添加配置:
      <PropertyGroup>
        <PublishSingleFile>true</PublishSingleFile>
        <SelfContained>true</SelfContained>
        <RuntimeIdentifier>win-x64</RuntimeIdentifier> <!-- 可根据系统调整,比如win-x86、win-arm64 -->
      </PropertyGroup>
      
    • 或者用命令行编译:
      dotnet publish -c Release -r win-x64 --self-contained true
      

内容的提问来源于stack exchange,提问作者user4951

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.26 00:40:04