在没有许多 dll 文件的情况下管理多项目引用

Managing Multible Project References without many dll files

我有 Visual Studio 多个项目的解决方案。所有项目都是 c# .net 应用程序,但有例外。 这个称为实用程序并构建为 class 库。 每个项目都引用实用程序项目。

有没有一种方法可以让实用程序 class 创建的 dll 不在一个位置为每个项目单独构建?

Visual Studio解法

Solution
 - Project 1 (references utility)
 - Project 2 (references utility)
 - Project 3 (references utility)
 - Project Launcher (references utility)
 - Project utility

当前构建文件夹结构

Main Folder
 - Launcher.exe
 - Utility.dll
 -> Project 1 Folder
    - 1.exe
    - Utility.dll
 -> Project 2 Folder
    - 2.exe
    - Utility.dll
 -> Project 3 Folder
    - 3.exe
    - Utility.dll

需要构建文件夹结构

Main Folder
 - Launcher.exe
 -> Project 1 Folder
    - 1.exe
 -> Project 2 Folder
    - 2.exe
 -> Project 3 Folder
    - 3.exe
 -> References Folder
    - Utility.dll

编辑: 应用程序不会同时 运行 并且需要与同一个实例通信。 使用共享项目解决了我的问题。

可能重复:Can the same DLL data be shared by 2 different processes?

正如您在当前构建结构中所述:当两个应用程序使用一个 DLL 时,该 DLL 不会在它们之间共享。每个应用程序加载自己的副本,并拥有自己的内存 space 和变量。

这是正常行为。如果您希望两个应用程序在它们之间进行通信和共享数据,则需要使用某种形式的进程间通信来来回 "pass" 数据。 Windows 在这种情况下,Communication Foundation 是一个不错的选择。