将文件从一个项目复制到另一个项目时出错

本文关键字:项目 复制 另一个 出错 一个 文件 | 更新日期: 2023-09-27 18:10:06

我用c++创建了一个*.dll文件,用于c#程序。本机DLL驻留在我的托管DLL包装器中。从那里,我将本机dll (NativeDll.dll用于调试和发布)物理复制到我的c#控制台应用程序的调试和发布文件夹中。当我运行c#程序时,它按预期运行创建对象并显示值。

当我更改了本地库(c++)中变量的默认值时,问题就出现了。当我再次运行程序时,对变量的更改(box的with)仍然保留最后一个值。从我搜索的,我发现我可以复制dll从一个项目到我的c#项目通过这种方式在项目的构建事件/后构建事件命令行:

copy "$(SolutionDir)ManagedDll'bin'$(Configuration)'NativeDll.dll"
      "$(SolutionDir)TestDLLConsole'bin'$(Configuration)"
当我再次运行程序时,我得到一个错误,指出"已退出,代码为9009"。解决这个问题的唯一方法是手动重新复制我的NativeDll.dll文件,并在我进行更改时覆盖现有的。

我在我的解决方案中的4个项目是根据以前的构建:

  • 静态库
  • NativeDll
  • ManagedDll
  • TestDLLConsole(在这里我测试看看dll是否工作)。

我如何得到dll被复制到/覆盖每个TestDLLConsole被编译?

将文件从一个项目复制到另一个项目时出错

也许您正在尝试覆盖您使用最后一次构建事件复制的最后一个dll。你可以试试:

copy /Y "$(SolutionDir)ManagedDll'bin'$(Configuration)'NativeDll.dll"
  "$(SolutionDir)TestDLLConsole'bin'$(Configuration)"

/Y参数抑制确认要覆盖现有目标文件的提示。