在没有许多 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 是一个不错的选择。
我有 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 是一个不错的选择。