.net - 如何在 Visual Studio 中通过 F5 部署加载项库?

标签 .net visual-studio reference msbuild project

我维护一个应用程序及其所依赖的一些项目引用。此外,同一解决方案中还有一些“加载项”项目,不需要编译应用程序,但会在运行时加载。然而,“插件”项目对于应用程序的工作至关重要。也就是说,它们是强制加载项。

我的团队应始终能够使用 Visual Studio 启动应用程序,根据需要进行增量构建,并将加载项库部署到应用程序。

加载项项目不与应用程序项目共享其输出目录,因为加载项项目是 AnyCPU,而应用程序是针对 x86 和 x64 平台构建的。

我犹豫是否简单地将 P2P 引用添加到加载项项目中。没有 P2P 引用不仅是传达这些项目的插件特性的好方法,而且还有助于 IntelliSense 不至于变得难以承受。

我尝试use P2P references with ReferenceOutputAssembly set to false ,但这似乎不支持 Visual Studio 内的增量构建。

那么,在存在上述现实世界限制的情况下,我如何才能提供令人满意的 F5 体验?

最佳答案

使用 P2P 引用并将 ReferenceOutputAssembly 设置为 false,但请考虑以下陷阱:

  • 由于 Visual Studio 2017 版本 15.4.2 及更早版本现在的情况,快速更新检查不支持此功能。因此,请通过在应用程序项目中将 DisableFastUpToDateCheck 属性设置为 true 来禁用检查,如 the docs 中所述。 。这可能会大大增加构建时间。
  • 请勿在项目引用中指定 CopyToOutputDirectory 元数据,以免应用程序的输出目录与引用的项目一致。否则,这会阻止Rebuild目标。

关于.net - 如何在 Visual Studio 中通过 F5 部署加载项库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46905637/

相关文章:

c# - 防止两个接口(interface)之间的转换

visual-studio - Visual Studio 自定义项模板依赖于

c++ - 如何使用 IIOP 和omniORB 进行远程调用

java - java中将数据复制到引用中(缺少指针问题)

java - 为什么在 java 中不允许分配到 'this'?

c# - C# 中的三元运算符

c# - 如何在 C# 中使用类的类型作为继承的集合属性的类型参数

.net - 同一台电脑上所有用户可写的文件夹

c++ - 如何在 Visual Studio 2013 中每次构建时生成新的 PDB 文件?

rust - 为什么不能在同一结构中存储值和对该值的引用?