我正在使用VS2010在VB.Net中编写商业应用程序。我的应用程序需要访问MySQL数据库。所以我在项目的“参考”部分中引用了MySQL.Data.dll。出于许可原因,我想确保此dll文件未嵌入到我的应用程序中。根据我的阅读,如果我将“copy local”属性设置为False,则不会复制该文件,我需要将其专门复制到我的bin目录。所以我把它设置为False并构建我的项目。当我运行它时,即使dll不在bin目录中,我仍然可以连接到MySQL数据库。对我来说,这表明它正在使用构建进行编译。但是,该引用指向我的硬盘驱动器上原始MySQL.data.dll所在的位置。程序运行时它还能在那里找到吗?
我怎样才能确保它没有被编译?感谢。
顺便说一句,它不在GAC中(我使用gacutil.exe检查)
答案 0 :(得分:2)
如果您指的是将实际装配嵌入您的装配中,那么它就不会。它可以做到,但它并不是开箱即用的。
当需要加载引用时,应用程序会查看许多引用位置。
请记住,仅仅因为您的应用程序启动了,并不意味着它找到了所有引用。它很可能尚未加载所有这些,因为它只会在需要时才会加载它。