我有一个包含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文件夹中。
有人可以帮忙,这让我疯了!
非常感谢
标记