当C#程序启动时,复制到调试文件夹的文件将自动删除

当C#程序启动时,复制到调试文件夹的文件将自动删除,c#,wpf,visual-studio-2012,dll,dllimport,C#,Wpf,Visual Studio 2012,Dll,Dllimport,我正在使用Visual Studio 2012构建WPF程序。有一个从C编译的DLL,我使用DllImport调用它。Dll被添加到项目中并标记为 构建操作:内容 复制到输出目录:始终复制 生成项目解决方案后,dll将复制到调试文件夹,并成功使用Visual Studio生成的.exe。但是,当我运行它时,无论是通过双击从文件资源管理器生成的.exe还是在VS调试器中“运行”,dll都会突然被自己删除 为什么?如果它在从文件资源管理器运行时执行此操作,则 当您尝试访问时,您的防病毒程序正在

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

  • 构建操作:内容
  • 复制到输出目录:始终复制
生成项目解决方案后,dll将复制到调试文件夹,并成功使用Visual Studio生成的.exe。但是,当我运行它时,无论是通过双击从文件资源管理器生成的.exe还是在VS调试器中“运行”,dll都会突然被自己删除


为什么?

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

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

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

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

  • A依赖于B;B取决于C-问题存在
  • A依赖于B和C;B取决于C——问题消失了

  • 也许这会帮助某人追踪原因。

    我遇到了这个问题,并成功地解决了

    您需要检查两件事:

  • 在project App.xaml中,您需要确保

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

    • 对于Windows x:class=“…”设置为xaml文件(视图)所属的确切命名空间。记住要清楚地检查是否将视图或viewmodels放入此项目下的文件夹中

  • 现在,试试你的“F5”。

    我发现,不仅DLL,甚至一个简单的添加为内容的abc.txt,在程序启动时也会自动删除。