1

我有3个项目;Project1.Web,Project1.ServiceProject1.Common. 两者Project1.WebProject1.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

我已经尝试/检查了以下内容:

  1. Project1.WebProject1.Service(两个方向)之间没有依赖关系。
  2. 中修改的文件Project1.Service不共享;并且没有定义前/后构建事件。
  3. 对 Project1.Service.csproj 项目文件执行 msbuild 并没有同样的效果。
  4. 拒绝对 bin 目录下的写入/创建权限Project1.Web不会导致增量构建失败。
  5. 在引用的详细或诊断 msbuild 输出中不发出任何输出Project1.Web(在 Visual Studio 中)
  6. 使用procmon,我可以看到 devenv 正在使用mswebprj.dll(C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\Packages\mswebprj.dll) - 它调用文件的副本。
4

0 回答 0