【发布时间】:2018-07-20 05:43:00
【问题描述】:
我将免去您解释我为什么要这样做的麻烦,但我正在寻找一种在构建项目时删除对 dll 的引用的方法。我不是在谈论未使用的引用,而是可能包含我的项目正在使用的相同命名空间和相同类的引用。我在想一个预构建事件命令行,但我不知道该命令会是什么样子。
PS:对于那些关心我为什么想要这个的人。我有一个模板项目 A,其中包含使用在另一个项目 B 中定义的基类的类。这个模板项目 (A) 它的唯一功能是打包在 Nuget 包中,然后部署在多个其他项目中,为简单起见想象3个项目C、D和E。在项目C、D和E中使用Nuget会生成所有的类并引用项目B的dll,因为我们需要Base类。目前我还获得了对模板项目 (A) 的 DLL 的引用。这是不应该发生的,因为具有相同命名空间的所有类都将存在于项目 A 和项目 C、D 和 E 中。这就是为什么我要自动删除对模板项目 (A) 的引用。
提前致谢。
亲切的问候,
亚尼克
【问题讨论】:
-
如果包 A 根本不使用,为什么还需要引用它?有多种方法可以“解决”您的问题,但我强烈反对将程序集排除在编译之外。这里的好方法是在 A 中使用不同的命名空间,特别是如果您同时控制两者。第二种方法是为引用的项目/包添加一个全局别名。示例:
path\to\MyLibrary.dll CoolLibrary -
@Yan,这个问题现在怎么样?你解决了吗?如果没有,请告诉我此问题的最新状态。
-
@imps,就像我说的那样,我不需要对项目 A 的引用。问题是我总是得到引用,因为我总是使用 includereferencedprojects 参数。
标签: visual-studio events command-line build nuget