当C#程序启动时,复制到Debug文件夹的文件会自动删除

本文关键字:文件 文件夹 删除 Debug 程序 启动 复制 | 更新日期: 2023-09-27 18:29:50

我正在使用Visual Studio 2012构建一个WPF程序。有一个从C编译的DLL,我使用DllImport来调用它。Dll添加到项目中并标记为

  • 生成操作:内容
  • 复制到输出目录:始终复制

生成项目解决方案后,dll将成功复制到Debug文件夹中,并使用Visual Studio生成的.exe。然而,当我运行它时,通过双击文件资源管理器中生成的.exe或VS调试器中的"运行",dll会突然被自己删除。

为什么?

当C#程序启动时,复制到Debug文件夹的文件会自动删除

如果在从文件资源管理器运行时执行此操作,则

  • 当您尝试访问时,防病毒程序正在删除dll它

  • 程序中必须有代码才能删除当前目录

经过多次尝试,我发现了一些模式,这也是一种变通方法。假设我们有3个项目,A、B和C。

  1. A取决于B;B取决于C-问题存在
  2. A取决于B和C;B取决于C-问题消失

也许这会帮助人们找到原因。

我遇到过这种情况,并成功修复。

你需要检查两件事:

  1. 在App.xaml项目中,您需要确保

    • 对于应用程序x:Class="…"设置为YourWpfProject.App
    • 对于StartupUri="…",设置为视图(MainWindow.xaml)所属的文件夹
  2. 在View(MainWindow.xaml)文件的开头,您需要确保

    • 对于Windows x:class="…"设置为xaml文件(View)所属的确切命名空间。请记住,如果您将视图或视图模型放入此项目下的文件夹中,请明确检查

现在,试试你的"F5"。