Debugging VS2017代码更改不影响.exe文件

Debugging VS2017代码更改不影响.exe文件,debugging,visual-studio-2017,release,Debugging,Visual Studio 2017,Release,因此,我面临着VS代码更改的问题 无论我对我的解决方案应用了什么样的更改,并且构建了什么样的解决方案,它都工作得很好,我可以在调试时看到这些更改被应用但是相同的更改不适用于.exe文件 我也尝试过发布版本,同样的。它可以很好地调试发布版本,但不会将这些更改应用于.exe文件 因此,任何帮助都将不胜感激 它可以很好地调试发布版本,但不会将这些更改应用于 .exe文件 调试项目时,VS debug engine将尝试获取用于调试的输出project.exe和project.pdb。因此,如果调试工作

因此,我面临着VS代码更改的问题

无论我对我的解决方案应用了什么样的更改,并且构建了什么样的解决方案,它都工作得很好,我可以在调试时看到这些更改被应用但是相同的更改不适用于.exe文件

我也尝试过发布版本,同样的。它可以很好地调试发布版本,但不会将这些更改应用于.exe文件

因此,任何帮助都将不胜感激

它可以很好地调试发布版本,但不会将这些更改应用于 .exe文件

调试项目时,
VS debug engine将尝试获取用于调试的输出project.exe和project.pdb。因此,如果调试工作正常(应用了这些更改),output project.exe也应该可以正常工作,不会出现任何问题(应用了更改)

参见(对于C++,类似于C,VB的情况):

当VS debug engine找不到输出.exe时会出现此错误消息,这就是为什么我说如果在调试过程中应用了更改,它实际上表明更改已应用于.exe文件

让我将输出.exe项目的项目命名为A,解决方案中的其他项目为B、C、D。以下是您可以检查的两个方向:

如果代码更改,您的意思是项目A中的

  • 右键单击解决方案资源管理器=>Properties中的项目A,在build选项卡中检查
    输出目录
    (C++)或
    输出路径的值,它表示Output.exe实际存在的位置,VS debug engine将获取此路径中的.exe
  • 因此,请确保您在此路径中测试了.exe,而不是从其他位置测试了旧版本

    如果代码更改,您的意思是B、C、D中的,而A取决于B、C、D:

  • 在大多数情况下,VS将帮助将程序集从B、C、D复制到A的bin文件夹中,但我不确定您的环境是否有问题,从而破坏了这一点。您应该确保bin文件夹中的所有程序集都已更新
  • 我认为这个问题来自您的项目,而不是IDE(创建一个新的简单项目来检查问题是否发生在其中)。你用哪种方式检查了更改是否适用?无论是在调试期间检查还是检查
    .exe
    ,请确保使用相同的方法

    更新:

    根据Sandesh的说法,这个问题可以通过清洁来解决
    旧版本(完全)重建

    你使用VS还是VScode?您当前的解决方案中有多少个项目?请尝试在调试和发布模式下重建解决方案,以检查它是否有任何区别。我正在使用VS2017。。。不是代码。。。。共有4个项目…我尝试了两种模式的构建。。。调试在这两种情况下都可以正常工作,并且.exe文件也会被修改(我指的是文件夹视图中的日期和时间),但我看不到应用程序中的更改,无论您需要向我们显示更多细节。例如,建立一个社区对你和潜在的回答者都有帮助。(例如,一个非常简单的控制台应用程序,仅用于演示)。此外,生成时,exe将根据生成配置转到不同的文件夹(选中“调试”和“释放”bin文件夹)。此外,可能存在未重建的依赖项。在构建“main”(exe)应用程序时,请尝试“Rebuild all”和“Clean”,这将强制重新生成dll(引用的其他项目)。此外,在编译常量时可能会有一些细微之处。例如:如果更改项目中某个常量的值,并将其用于另一个项目,则需要在更改后重新编译另一个项目。常量没有被主项目“引用”,它们被随意复制到其他项目中进行编译,嗨,这个问题有更新吗?在调试之前,重新生成整个解决方案,并共享有关您的项目类型、编程语言和代码更改的更多详细信息。如Pac0所建议的,最好尽可能提供一个最小的可复制示例:)很高兴知道它有一些帮助:)如果我的回答有助于解决此问题,你可以考虑把它标记为答案,看。此外,您还可以共享您的详细信息并将其添加为自答,请参阅。只是提醒一下:)