2017-04-01 131 views
1

现在在“Release”文件夹的根目录中创建“x86”和“x64”文件夹,其中包含“SQLite.Interop.dll”文件。以及SQLite库的其他dll文件驻留在根目录中。如何把所有SQLite必要的文件放到根目录下的子文件夹中(例如Release \ SQLite)并确保一切正常?如何将SQLite库文件移动到.NET项目中的子目录输出?

+0

它不是这样工作吗?为什么你需要其他文件? – Sentry

+0

我只想让我的根目录保持干净。还有其他与应用程序相关的文件。我不希望它们干扰第三方lib文件。 –

+0

然后我猜你的问题比使用SQLite更普遍,因为大多数引用或包会将一个DLL文件放在二进制文件夹中。寻找.NET应用程序的部署策略。 – Sentry

回答

0

这是NuGet包管理器放置在那些文件夹里面的“SQLite.Interop.dll”文件。我只是自己添加了对SQLite的引用,并没有包含“SQLite.Interop.dll”(没有它),请在false上设置Copy Local引用属性,以便它们不会复制到bin目录。然后,我手动将库放置在子目录中,就像通缉。之后,我只需要将probing path放在App.config中,以便运行时也会搜索指定子目录中的程序集。

<runtime> 
    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1"> 
     <probing privatePath="MySubdirectory1;MySubdirectory2"/> 
    </assemblyBinding> 
</runtime> 

通过这种方法应该手动复制库输出目录,但值得根目录是干净的。

相关问题