程序不更新后,我移动.exe文件



我编写程序并将其编译到arbitrage2目录

当一切顺利时,我复制。exe文件到arbitrage4目录。

在使用。net 7之前,它可以正常工作。

然而,令我惊讶的是,在套利4目录上运行的代码一定是过时的代码。

最后我直接把程序编译到arbitrage目录下,结果运行正常。

我想知道我的代码是不是真的在。exe文件,但在其他一些文件?

我想知道是否在。net 7之后。exe文件只是一个前端调用其他东西。如果是这样的话,那就解释得通了。

正如这里链接的答案所述,. net 6.0+应用程序的exe只是一个存根加载器(它基本上是dotnet.exe的补丁副本),它本身除了加载运行时之外什么也不做。代码位于与平台无关的applicationname.dll文件中。要运行应用程序,需要exe和dll,以及在那里生成的任何.json文件(它们用于查找正确的引用库)。当然,要成功运行应用程序,也需要输出文件夹中的任何其他dll。因此,一般的经验法则是:复制输出文件夹中的所有内容,如果你想让它在其他地方运行(在不同的目录,或在不同的PC上)。

有两种例外:.pdb文件仅用于调试。所以你不需要分配这些。与。dll文件同名的。xml文件是用于智能感知的,所以它们只对开发人员有帮助。它们应该与库一起发布,而不是与完整的应用程序一起发布。

我建议考虑单文件部署,它会将所有引用捆绑到单个EXE中。这样,无论你把你的EXE放在哪里,它都会有它需要的一切。

最新更新