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

时间:2015-08-28 00:37:17

标签: c# c++ .net dll

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

当我在本机库(C ++)中更改变量的默认值时出现问题。当我再次运行程序时,对变量(带有框)的更改仍保留最后一个值。从我搜索过的内容中,我发现我可以通过这种方式在项目的Build Events / Post-build事件命令行中将dll从一个项目复制到我的C#项目中:

copy "$(SolutionDir)ManagedDll\bin\$(Configuration)\NativeDll.dll"
      "$(SolutionDir)TestDLLConsole\bin\$(Configuration)"

当我再次运行该程序时,我收到一条错误消息,指出“已退出代码9009。” 解决这个问题的唯一方法是每当我进行更改时手动重新复制NativeDll.dll文件并覆盖现有文件。

我在解决方案中拥有的4个项目是下一个版本,具体取决于之前的版本:

  • NativeLib(静态库)
  • NativeDll
  • ManagedDll
  • TestDLLConsole(我在那里测试dll是否有效)。

如何在编译每个TestDLLConsole时将Dll复制到/覆盖?

1 个答案:

答案 0 :(得分:0)

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

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

/ Y参数禁止提示您确认是否要覆盖现有目标文件。