C# 在ASP.NET部署中包括bin子文件夹

C# 在ASP.NET部署中包括bin子文件夹,c#,asp.net,.net,asp.net-mvc,msbuild,C#,Asp.net,.net,Asp.net Mvc,Msbuild,我有一个ASP.NET MVC 3 web应用程序,其中包含生成后事件,它将一些互操作dll复制到bin的子文件夹中,如下所示 bin\x86\Sqlite.interop.dll bin\x64\Sqlite.interpo.dll 当我将此项目部署到web服务器上时,它不会复制x86或x64子文件夹 如何使部署复制这两个子文件夹 我已尝试使用“复制到输出文件夹”设置将文件包括在项目中,但这不会复制到子文件夹,只会复制到bin。我需要始终发布这两个子文件夹。如果您有公共DAL程序集,您可以

我有一个ASP.NET MVC 3 web应用程序,其中包含生成后事件,它将一些互操作dll复制到bin的子文件夹中,如下所示

bin\x86\Sqlite.interop.dll 
bin\x64\Sqlite.interpo.dll
当我将此项目部署到web服务器上时,它不会复制x86或x64子文件夹

如何使部署复制这两个子文件夹


我已尝试使用“复制到输出文件夹”设置将文件包括在项目中,但这不会复制到子文件夹,只会复制到bin。我需要始终发布这两个子文件夹。

如果您有公共DAL程序集,您可以执行以下操作:

  • 将本机dll作为资源嵌入到程序集
  • 为“入口点”类(会话、会话工厂等)创建静态构造函数,必要时从该构造函数保存到FS本机dll
  • 更新:


    还可以将所有本机dll添加到项目中。将它们标记为内容并始终复制。在这种情况下,它们将与您的服务

    一起部署。我会考虑将您的互操作DLL放入单独的文件夹中,并引用不在bin文件夹中的文件夹。盘旋bin文件夹结构只会让您头痛Sqlite ADO.NET提供程序查看条目程序集执行文件夹(bin),并基于x86/x64子文件夹加载正确的互操作程序集。刚刚发现IISEXPRESS不是从bin文件夹启动的,因此x64/x86子文件夹在asp.net web应用程序上是无用的(WinForms/WPF不是这样)。这假定在bin文件夹上具有写入权限,而在“程序文件”下安装的web应用程序甚至桌面应用程序都不是这样.允许桌面应用程序在其程序文件文件夹中写入。您是否尝试将这些文件添加到项目中并将其标记为内容?修改程序文件文件夹需要管理员权限。读书并不重要。