gpt4 book ai didi

c# - MSBuild 处理循环依赖

转载 作者:行者123 更新时间:2023-12-01 20:23:13 25 4
gpt4 key购买 nike

我是 MSBuild 新手。前两天刚开始尝试,现在刚刚测试。我遇到了一个问题,出现以下错误:

"c:\Users\martinslot\Documents\Visual Studio 2010\Projects\MultifileAssembly\SpecializedBuild.xml" (BuildNumberUtil target) (1) ->
c:\Users\martinslot\Documents\Visual Studio 2010\Projects\MultifileAssembly\SpecializedBuild.xml(4,34): error MSB4006: There is a circular dependency in t
he target dependency graph involving target "BuildNumberUtil".

我的 MSBuild 脚本如下所示:

<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">

<Target Name="BuildNumberUtil" DependsOnTargets="BuildStringUtil" >
<Message Text="=============Building modules for NumberUtil============="/>

<Csc TargetType="Module" Sources="NumberUtil/DoubleUtil.cs; NumberUtil/IntegerUtil.cs" AddModules="/StringUtil/StringUtil"/>
<Copy SourceFiles="@(NetModules)" DestinationFolder="../Output/Specialized"/>

</Target>

<Target Name="BuildStringUtil" DependsOnTargets="BuildNumberUtil" >
<Message Text="=============Building modules for StringUtil============="/>

<Csc TargetType="Module" Sources="StringUtil/StringUtil.cs;" AddModules="/NumberUtil/IntegerUtil;/NumberUtil/DoubleUtil"/>
<Copy SourceFiles="@(NetModules)" DestinationFolder="/Output/Specialized"/>

</Target>
</Project>

我理解这个问题,实际上我创建了这个小例子来看看 MSBuild 是否理解并可以以某种方式纠正问题。我该如何解决这个问题?

我的问题是两个目标编译相互依赖的模块。这里有人有关于如何使用 MSBuild 处理此类问题的解决方案吗?也许我以错误的方式构建它?

最佳答案

您根本无法构建具有循环依赖关系的项目。你怎么能?你先建哪个?这样做可能有一些深奥的、令人费解的、不正确的方法,但为什么要这样做呢?循环依赖通常表明存在设计缺陷。修复设计,您将不再有循环依赖问题。

关于c# - MSBuild 处理循环依赖,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9753653/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com