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

时间:2019-07-03 09:12:36

标签: c# .net visual-studio dll visual-studio-2019

我在Visual Studio Solution上有多个项目。所有项目都是c#.net应用程序,但有例外。 这称为实用程序,并构建为类库。 每个项目都引用实用程序项目。

是否有一种方法不能由实用程序类创建的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

编辑: 这些应用程序不会同时运行,并且需要与同一实例进行通信。 使用共享项目解决了我的问题。 how-to-make-net-class-library-linkable-no-dll

1 个答案:

答案 0 :(得分:0)

可能的副本:Can the same DLL data be shared by 2 different processes?

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

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