【发布时间】:2019-09-08 10:27:34
【问题描述】:
我有一个 Visual Studio (2017) C# 解决方案,其结构如下:
- 解决方案
- ExeProject
- DLL 项目
- NuGet-Dependency to
Stateless包(“Stateless”是包的名称)
- NuGet-Dependency to
DLLProject 将依赖项隐藏在其接口中,即Stateless 库的使用应该是DLLProject 的实现细节。
ExeProject 仅访问DLLProject 的公共接口和工厂。
由于超出此问题范围的原因,ExeProject 针对.Net Framework 4.6.1,而DLLProject 针对.Net Standard 2.0。
这编译正常,但调试时,可执行文件找不到Stateless.dll。
是否可以在链接 DLLProject 时自动部署该 DLL,而不向 ExeProject 添加 Stateless NuGet 依赖项?
【问题讨论】:
-
为什么要避免添加 nuget 依赖项?这正是它们的设计目的。
-
@BradleyUffner 可维护性、兼容性、可测试性、接口隔离等。我希望能够更改/切换出/删除有问题的库,而无需修改
ExeProject。在我提供的最小示例中,这并不重要,但手头的实际任务有多个这样的问题。 -
你能制作 DLLProject .Net Framework 4.6.1 吗?如果它们都在同一个解决方案中,则应该“正常工作”。
-
@mxmissile
DLLProject还用于 .Net Framework 不可用的环境,所以很遗憾,没有。