我有一个.net解决scheme(用C ++ / CLI编写),它引用了一些.dll项目,如下所示:
MainProject->ProjectA->ProbjectB MainProject->ProjectB
最初我从MainProject引用了ProjectA和ProjectB,它给了我上面提到的警告。
我可以通过从ProjectMain中删除对ProjectB的引用来删除警告,但是它使MainProject依赖于ProjectB不那么明显。 这是摆脱警告的正确的做法吗?
一般而言,依赖关系可以通过有向图来描述,其中每个节点是软件组件,每个边是依赖关系。 在我看来,对图形可以做的更简单,越好越好。
没关系。
如果您有ReSharper,则可以通过右键单击ProjectMain – > Project Hierarchy来查看依赖关系图。
我只想描述,但不能解释,遵循相关的行为。
如果每个项目都有自己的输出路径,我会收到C4945。
如果所有项目都有共同的输出路径,则警告消失。
我和你有同样的问题。 我按照你所描述的完全解决了这个问题:删除对“项目B”的引用(在你的具体情况下)。 这是我知道如何解决这个错误的唯一方法,就是禁用它。
不,删除引用可能不是正确的方法来处理它。
请参阅https://stackoverflow.com/a/12423588/321013
Use Dependencies in Build=false
设置Use Dependencies in Build=false
作为参考。
重点是,你应该有所有的引用, 在项目本身的代码作为直接引用,但设置Use Dependencies in Build=TRUE
干扰,因为它也拉动传递引用,如果你也有冲突直接引用。 (至少在我的VS2005上)