【发布时间】:2011-10-09 11:21:43
【问题描述】:
我在 2 个独立的解决方案中有 2 个项目
一个通过 DLL 引用来引用另一个。
例如:MyProjectA 通过 DLL 引用 MyprojectB
在 ProjectB 中,我在类文件中添加了一行不相关的代码(即字符串 abc = "abc";) 我重建 ProjectB,ProjectB.dll 被放入 ProjectA 引用的目录中
我未对 ProjectA 进行任何更改并尝试“构建”projectA,它会构建并更新 DLL。我不希望这种情况发生。 如果我再次在 projectA 上运行构建,则会跳过构建,因为没有进行任何更改。
不直接影响项目 A 对其调用的依赖项的更改不应影响 msbuild 实际上正在构建 ProjectA 的事实。这导致我们的版本控制/签名出现问题,我们不得不再次向客户提供所有文件。
换句话说,如果我对基础项目进行小改动,我应该只需要构建该基础项目并将其 DLL 重新部署到客户端,但由于更改,所有项目都将重新构建依赖。当我们必须对基础项目进行小的更改时,这对于连接速度较慢的人来说确实令人沮丧,并且不得不重新下载所有内容。
【问题讨论】:
-
您能否详细说明版本控制/签名问题?重建不应影响签约。我的直觉告诉我 msbuild 的行为是正确的。我担心的是,如果您确实禁用了此行为,那么当您更改项目 B 中确实对项目 A 有影响的某些内容时,您会遇到问题
-
james,它影响签名的原因是因为混淆了。每次构建都会发生变化
-
似乎发生的事情是 msbuild 将 .cs 文件和依赖 DLL(输入)与输出(dll)进行比较,如果任何输入文件比输出新,它会自动构建。这是微软在这里做出的一个可怕的假设。
标签: msbuild build dependencies