ASP.NET Web应用程序主dll没有被复制到Bin上构建

时间:2013-09-20 17:49:07

标签: asp.net visual-studio-2010

我有一个包含3个项目的ASP.NET(4)Web App解决方案。项目A参考B& C(还有其他第三方DLLS,如Crystal Reports等)。

我有3个构建配置,Debug,Test&释放。

如果我在任何配置中进行构建,则构建的DLLS(以及PDB,如果它是Debug)将按原样放置在各自的文件夹中。

因此,测试内置于{root} \ bin \ x86 \ Test

发布到{root} \ bin \ x86 \ Release

调试到{root} \ bin \ x86 \ Debug

此外,所有引用的dll都将其“Copy Local”属性设置为true,因此将它们复制到{root} \ bin文件夹中,以便我可以在VS中本地运行和测试。

BUT

主要应用程序DLL(ProjectA.dll)在构建/重建时未被复制到{Root} \ bin文件夹中,只是留在所选构建配置的文件夹中,如上所述。因此,当我在VS中运行应用程序时,我收到错误“无法加载类型”ProjectA.Global_asax'。鉴于主项目DLL不在Web服务器正在查找的Bin文件夹中,这并不奇怪。

我可以让它运行的唯一方法是手动将ProjectA.dll复制到{Root} \ bin文件夹中,这似乎是一个废话,显然充满了我在每次忘记之后忘记复制最新版本的风险。建立。

当然必须有一种方法告诉VS将主app dll(ProjectA.dll)以及所有引用的dll复制到主{Root} \ bin文件夹中?

显然,由于ProjectA.dll是主应用程序程序集,因此它不在引用列表中,因此我无法为其设置“复制本地”属性。除非它隐藏在其他地方?我已经在VS中搜索了每个表单和对话框(以及谷歌上的小时数!),并且无法看到如何告诉VS'请在完成构建后将主应用程序程序集复制回到bin文件夹中。

有人可以帮忙,这让我疯了!

非常感谢

标记

1 个答案:

答案 0 :(得分:0)

如果您只是想避免在每次构建后移动dll的手动工作,那么您可以创建一个Visual Studio post-build事件来复制dll。一些示例herehere