指定System.Data.SQLite.dll释放目录的问题

hzw758 2015-11-20 07:51:13
自己做了个小程序,用到了SQLite数据库,将System.Data.SQLite.dll作为资源文件存入了Resources,并引用。
我的想法是程序一开始检测指定文件夹是否有System.Data.SQLite.dll文件,没有则释放一份,然后再进行引用,但如果直接在项目上右键添加引用,他就会在我检测之前进行引用,此时还没有释放System.Data.SQLite.dll到指定文件夹,我又不想DLL文件跟exe程序同目录,我试过添加App.config文件,但没有作用,不知道是不是我写的有问题

//App.config
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<probing privatePath="数据文件夹勿删;bin;bin\Debug\数据文件夹勿删"/>
</assemblyBinding>
</runtime>
<startup useLegacyV2RuntimeActivationPolicy="true">
<supportedRuntime version="v4.0" sku = ".NETFramework,Version=v4.0"/>
<supportedRuntime version="v2.0.50727"/>
</startup>
</configuration>

求教
...全文
175 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
hzw758 2015-11-21
  • 打赏
  • 举报
回复
UP 3.
hzw758 2015-11-20
  • 打赏
  • 举报
回复
引用 1 楼 zwbdabc 的回复:
放在资源文件的话,只能动态加载程序集反射操作了,效率低,不可行。 其实完全不必这样做,可以用程序集合并工具嘛,比如Spoon Studio,可以把你的exe和dll合并成一个exe。 注意,不要用微软提供的ILMerge合并,它那个对包含非托管的程序集支持得不好。
之前用ILMerge合并失败了,试一下Spoon Studio看看
hzw758 2015-11-20
  • 打赏
  • 举报
回复
引用 2 楼 shingoscar 的回复:
你把dll删掉就行了,程序启动后会引发AppDomain.AssemblyResolve事件,在那里做释放就行了
这个事件研究了很久,没实现成功
Poopaye 2015-11-20
  • 打赏
  • 举报
回复
你把dll删掉就行了,程序启动后会引发AppDomain.AssemblyResolve事件,在那里做释放就行了
zwbdabc 2015-11-20
  • 打赏
  • 举报
回复
放在资源文件的话,只能动态加载程序集反射操作了,效率低,不可行。 其实完全不必这样做,可以用程序集合并工具嘛,比如Spoon Studio,可以把你的exe和dll合并成一个exe。 注意,不要用微软提供的ILMerge合并,它那个对包含非托管的程序集支持得不好。

111,120

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Creator Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧