InstallShield 和 DllImport 管理

InstallShield and DllImport management

在我的 VS2012 项目中,我使用了第三方 dll。我没有把它添加到项目引用中,但是我已经将它的路径添加到环境系统变量中(在Path中),按照第三方软件的用户手册中的建议。

所以在我的项目中我没有对该 dll 的任何引用,只有一个 .cs 文件,其中有一些 [DllImport("xxx.dll")].

在同一个解决方案中,我创建了一个 InstallShield 项目,为我的应用程序创建一个设置。当我 运行 安装时,我注意到 dll 被复制到我的应用程序文件夹中。这对我不利,因为如果我尝试 运行 我的应用程序,我会遇到与第三方软件的其他 dll 的兼容性问题。

如果我从我的应用程序文件夹中手动删除 xxx.dll,它可以正常工作。

那么,如何避免 xxx.dll 被复制到应用程序文件夹中?

关闭任何 "magic" 选项,以便您可以准确控制要安装的文件。例如,set.NET 在生成时扫描到属性而不是依赖项和属性。