我有3个项目;Project1.Web,Project1.Service和Project1.Common. 两者Project1.Web都Project1.Service依赖于Project1.Common.
- 如果我重建包含所有 3 个项目的解决方案;一切正常。
- 如果我更改文件
Project1.Web;文件构建到 Project1.Web\bin - 一切正常。 - 如果如果更改文件中的
Project1.Service文件被构建到 Project1.Service\bin\Debug并且一些被复制到 Project1.Web\bin。复制的文件是 Project1.Common.dll,但没有构建(或复制)Project1.Web.dll。 - 中修改的文件
Project1.Service不共享,它只是被修改以触发Project1.Service.
有谁知道为什么 Visual Studio 会将构建工件复制到不属于增量构建的目录中?
当前,此事件序列离开Project1.Web是非工作状态,Project1.Service并且Project1.Web通过第三方程序集依赖于同一程序集的不同版本。如果我们决定对它进行更改,Project1.Service那么它的副作用就是 break Project1.Web。
我已经尝试/检查了以下内容:
Project1.Web和Project1.Service(两个方向)之间没有依赖关系。- 中修改的文件
Project1.Service不共享;并且没有定义前/后构建事件。 - 对 Project1.Service.csproj 项目文件执行 msbuild 并没有同样的效果。
- 拒绝对 bin 目录下的写入/创建权限
Project1.Web不会导致增量构建失败。 - 在引用的详细或诊断 msbuild 输出中不发出任何输出
Project1.Web(在 Visual Studio 中) - 使用
procmon,我可以看到 devenv 正在使用mswebprj.dll(C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\Packages\mswebprj.dll) - 它调用文件的副本。