2014-11-06 26 views
0

我正在使用VS2010编写VB.Net中的商业应用程序。我的应用程序需要访问MySQL数据库。所以我在项目的“References”部分有一个对MySQL.Data.dll的引用。出于许可原因,我想确保这个dll文件没有嵌入到我的应用程序中。从我读到的内容来看,如果我将“copy local”属性设置为False,那么文件不会被复制,我需要将其专门复制到我的bin目录中。所以我将它设置为False并构建了我的项目。当我运行它时,即使dll不在bin目录中,我仍然可以连接到MySQL数据库。对我来说,这表明它正在编译与构建。但是,参考指向原始MySQL.data.dll所在的硬盘驱动器上的位置。当程序运行时它仍然可以在那里找到它吗?嵌入在编译代码中的VB.net引用?

我怎样才能确保它没有被编译?谢谢。

顺便说一句,这不是在GAC(我检查使用的Gacutil.exe)

+0

您是否尝试在Visual Studio之外运行您的应用程序? – Steve 2014-11-06 17:58:12

+0

是的,它仍然连接。 – user2721815 2014-11-06 18:16:43

回答

2

如果你指的是具有嵌入到你的实际装配,那么没有事实并非如此。它可以完成,但它不是开箱即用的。

当需要加载时,应用程序会查找许多地方供您参考。

  • GAC
  • 接着给应用程序(也许还消费组件)
  • x64和x86文件夹旁边的应用(可能也是耗时组件)在App.config指定
  • 的任何路径/web.config用于引用程序集。

请记住,只是因为你的应用程序启动了,并不意味着它找到了所有的引用。它很可能还没有加载所有这些,因为它只会在需要时才做。

+0

我把这个exe文件带到另一台机器上运行,我无法连接。显然它没有嵌入。谢谢。 – user2721815 2014-11-06 20:04:08