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

时间:2016-01-11 07:57:30

标签: c# wpf visual-studio-2012 dll dllimport

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

  • 构建操作:内容
  • 复制到输出目录:始终复制

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

为什么?

3 个答案:

答案 0 :(得分:1)

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

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

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

答案 1 :(得分:0)

经过多次尝试,我发现了一些可以解决的模式。假设我们有3个项目,A,B和C.

  1. A取决于B; B取决于C - 存在问题
  2. A取决于B和C; B取决于C - 问题消失
  3. 也许它可以帮助某人追踪原因。

答案 2 :(得分:0)

我遇到过这个,并且成功修复了。

您需要检查两件事:

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

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

    • 对于Windows x:class =" ..."设置为xaml文件(View)所属的精确命名空间。如果您将视图或视图模型放在此项目下的文件夹中,请记得清楚地检查。
  3. 现在,试试你的" F5"。