我有一个使用 .Net 2.0 Framework 的客户端/服务器应用程序。我正在使用 Visual Studio 2008 来构建和管理代码。
当我仅通过启动 .exe 来运行应用程序的调试或发布版本时,我会在数据库上收到一条插入语句,该语句尝试为表的外键插入“0”,从而触发错误,因为另一个表的主键不为0。
当我通过点击播放按钮(“开始调试”)运行应用程序时,插入语句使用正确的外键。
在第一种情况下,即使我在调试版本启动后“附加到进程”,也会发生这种情况。
我的问题:启动后附加到应用程序的调试版本与从调试器启动应用程序有什么区别?
最佳答案
如果您“开始调试”,您将在 vshost.exe hosting process 下运行。这会回收 AppDomain 创建,让您调试部分信任的应用程序,并且可以沙箱 ClickOnce 应用程序。
这些功能都不太可能导致您的错误(并且 vshost 对于大多数人来说并不是什么大问题) - 所以我认为这可能是一个转移注意力的问题。
您可能应该考虑与获取 FK 值相关的多线程和计时问题。
关于.net - Visual Studio "Start Debugging"与 "Attach to Process",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/854136/