1
現在在「Release」文件夾的根目錄中創建「x86」和「x64」文件夾,其中包含「SQLite.Interop.dll」文件。以及SQLite庫的其他dll文件駐留在根目錄中。如何把所有SQLite必要的文件放到根目錄下的子文件夾中(例如Release \ SQLite)並確保一切正常?如何將SQLite庫文件移動到.NET項目中的子目錄輸出?
現在在「Release」文件夾的根目錄中創建「x86」和「x64」文件夾,其中包含「SQLite.Interop.dll」文件。以及SQLite庫的其他dll文件駐留在根目錄中。如何把所有SQLite必要的文件放到根目錄下的子文件夾中(例如Release \ SQLite)並確保一切正常?如何將SQLite庫文件移動到.NET項目中的子目錄輸出?
這是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>
通過這種方法應該手動複製庫輸出目錄,但值得根目錄是乾淨的。
它不是這樣工作嗎?爲什麼你需要其他文件? – Sentry
我只想讓我的根目錄保持乾淨。還有其他與應用程序相關的文件。我不希望它們干擾第三方lib文件。 –
然後我猜你的問題比使用SQLite更普遍,因爲大多數引用或包會將一個DLL文件放在二進制文件夾中。尋找.NET應用程序的部署策略。 – Sentry