我正在使用P / Invoke从我的项目调用非.NET dll,这意味着.dll必须始终存在于.exe的目录中。

有没有办法告诉Visual Studio这个依赖项,以便它在编译时自动将.dll复制到输出目录,并自动在设置中包含.dll?或者我必须手动执行此操作吗?

有帮助吗?

解决方案

您可以将此文件复制/链接到项目,并在属性窗口中设置“构建操作”。到“无”和“复制到输出目录”到“如果更新则复制”或“始终复制”。

或者您可以使用“预构建事件” &安培; “建立后事件”您可以在其中指定任何批处理脚本。

我更喜欢第二种选择,因为这种方式比第一种方式更灵活。

您还可以修改MSBuild文件并添加用于复制文件的任务。

其他提示

您只需将.DLL添加到项目中即可。

选择该文件的 Properties 窗格,并将 Build Action 设置为 Content Copy to Output Directory to 复制如果更新

我认为将.DLL添加到项目中的一个问题是,您可能需要不同版本的DLL来进行调试和发布构建。您认为可以将DLL的调试版和发行版都添加到文件中,并根据配置排除不合适的版本,但我找不到办法。我正在使用Visual Studio 2010.我很肯定这在过去与VS6一起工作。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top