8

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

有没有办法告诉Visual Studio这个依赖,这样编译时会自动将.dll复制到输出目录,并在setup中自动包含.dll?还是我必须手动执行此操作?

4

3 回答 3

8

您可以简单地将 .DLL 添加到您的项目中。

选择该文件的Properties窗格并设置Build ActionContentCopy to Output DirectoryCopy if newer

于 2008-09-24T10:13:39.393 回答
5

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

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

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

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

于 2008-09-24T10:18:05.810 回答
2

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

于 2009-09-04T00:20:49.680 回答