2015-04-07 40 views
2

我有一個生成後生成事件的ASP.NET MVC 3 web的應用程序,拷貝一些互操作的dll成箱的子文件夾如下包括ASP.NET部署斌子

bin\x86\Sqlite.interop.dll 
bin\x64\Sqlite.interpo.dll 

當我部署此項目到Web服務器上,它不會複製x86或x64子文件夾。

如何讓部署複製這兩個子文件夾?

我已經嘗試過使用「複製到輸出文件夾」設置包括項目中的文件,但是這不會複製到子文件夾,只能複製到bin文件夾中。我需要始終發佈兩個子文件夾。

+0

我會考慮把你的互操作DLL放入一個單獨的文件夾,並引用該文件夾**不在bin文件夾**內。控制bin文件夾結構只會令你頭疼 – mattytommo

+0

Sqlite ADO.NET提供程序查看入口程序集執行文件夾(bin)並加載基於x86/x64子文件夾的正確interop程序集。只是發現IISEXPRESS不能從bin文件夾啓動,所以x64/x86子文件夾在asp.net web應用程序中沒有用(對WinForms/WPF不是這樣)。 –

回答

0

如果你有共同的DAL組件,您可以執行這樣的伎倆:如資源

  • 到你的「切入點」類創建靜態構造函數(會話,會話工廠到您的程序集

    1. 使嵌入本地的dll,等),並保存在必要時FS本地的dll從這個構造

    更新:

    你也可以添加到項目中所有n ative dll's。將它們標記爲內容並始終複製。在這種情況下,他們將與您的服務部署

  • +0

    這假定了bin文件夾的寫權限,而web應用甚至桌面應用都不是「程序文件」下安裝的。 –

    +0

    桌面應用程序被允許寫入他們的Program Files文件夾。您是否嘗試將這些文件添加到您的項目中並將它們標記爲內容? – deeptowncitizen

    +0

    修改Program Files文件夾需要管理員權限。閱讀不。 –