[英]Visual Studio 2008 - Program exits immediately with F5 (start debugging)
[英]How to F5 deploy with add-in libraries in Visual Studio?
我维护一个应用程序,其中包含一些依赖它的项目引用。 此外,在同一解决方案中有一些“附加”项目不需要编译应用程序,而是在运行时加载的。 但是,“附加”项目对于应用程序完成其工作至关重要。 也就是说,它们是强制性加载项。
我的团队将始终能够使用Visual Studio启动应用程序,并根据需要进行增量构建,并将加载项库部署到应用程序中。
外接程序项目不与应用程序项目共享其输出目录,因为外接程序项目是AnyCPU,而应用程序是针对x86和x64平台构建的。
我很犹豫,只是将P2P引用添加到加载项项目中。 没有P2P引用不仅是传达这些项目的附加特性的一种好方法,而且还有助于IntelliSense变得不知所措。
我尝试将ReferenceOutputAssembly
设置为false
来使用P2P引用 ,但这似乎不支持Visual Studio内部的增量构建。
那么,在上述现实世界中存在的约束条件下,我如何才能提供令人满意的F5体验?
那么,在上述现实世界中存在的约束条件下,我如何才能提供令人满意的F5体验?
如果我理解您的正确,恐怕您输入了一个误解。 在ReferenceOutputAssembly
设置为false
使用P2P引用,Visual Studio / MSBuild不会将该引用库复制到引用项目的输出,但是仍将编译引用的项目。
如果您不想在同一解决方案中编译那些“加载项”项目,而是在运行时加载它们,则可以直接引用那些“加载项”项目的.dll
文件。 或者,您可以使用NuGet打包库程序集。 然后,您可以在Visual Studio中使用NuGet来处理所有这些引用。 在这种情况下,“加载项”项目不会编译,而是在运行时加载。
如果只不想将那些“附加”项目库复制到参考项目的输出目录中,则可以将这些引用的属性“ Copy Local
”设置为false。
更新评论:
我想在同一解决方案中开发“附加”项目。 您反对此工作流程吗?
简单的答案是。 如果在同一解决方案中开发“外接程序”项目,则在引用的项目中进行任何修改时,将重新编译引用的项目,这将破坏以前的部署。 因此,我建议您不要在同一解决方案中开发“外接程序”项目,而可以将其移至新解决方案。 如果仍要在同一解决方案中开发这些项目,则可以参考我以前的建议“将Nuts与Library组件打包在一起。然后可以在Visual Studio中使用NuGet来处理所有这些引用。” 在这种情况下,开发外接程序项目时,先前的部署不会被破坏。
希望这可以帮助。
只需在各处使用P2P引用即可使其工作。 也就是说,相对于未直接引用“附加”项目的外观,更喜欢可工作的构建系统。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.