heg*_*ege 13 c# microsoft-fakes visual-studio-2012
最初我们在复杂的解决方案中发现了这个问题,但现在我也可以在虚拟项目中重现它.
如果我在VS2012 premium(更新4)中创建项目并为其中一个引用添加Fakes程序集,那么无论是否有任何更改,项目似乎都会重建.即我构建项目然后再次单击构建按钮将导致重建项目.
打开诊断构建信息,似乎问题的根本原因是编译.fakes文件的工具正在触摸.Fakes.dll文件,因此VS认为某些内容已更改:
1>Using "Touch" task from assembly "Microsoft.Build.Tasks.v4.0, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a".
1>Task "Touch" (TaskId:11)
1> Task Parameter:
1> Files=
1> D:\work\Ch24_2014_PreEC\UnitTestProject1\FakesAssemblies\mscorlib.4.0.0.0.Fakes.dll
1> D:\work\Ch24_2014_PreEC\UnitTestProject1\FakesAssemblies\System.4.0.0.0.Fakes.dll
1> D:\work\Ch24_2014_PreEC\UnitTestProject1\FakesAssemblies\mscorlib.4.0.0.0.Fakes.fakesconfig
1> D:\work\Ch24_2014_PreEC\UnitTestProject1\FakesAssemblies\System.4.0.0.0.Fakes.fakesconfig (TaskId:11)
1> Touching "D:\work\Ch24_2014_PreEC\UnitTestProject1\FakesAssemblies\mscorlib.4.0.0.0.Fakes.dll". (TaskId:11)
1> Touching "D:\work\Ch24_2014_PreEC\UnitTestProject1\FakesAssemblies\System.4.0.0.0.Fakes.dll". (TaskId:11)
1> Touching "D:\work\Ch24_2014_PreEC\UnitTestProject1\FakesAssemblies\mscorlib.4.0.0.0.Fakes.fakesconfig". (TaskId:11)
1> Touching "D:\work\Ch24_2014_PreEC\UnitTestProject1\FakesAssemblies\System.4.0.0.0.Fakes.fakesconfig". (TaskId:11)
1>Done executing task "Touch". (TaskId:11)
[...]
1>Input file "D:\work\Ch24_2014_PreEC\UnitTestProject1\FakesAssemblies\System.4.0.0.0.Fakes.dll" is newer than output file "obj\Debug\UnitTestProject1.pdb".
Run Code Online (Sandbox Code Playgroud)
请告诉我我做错了什么以及如何解决这个问题,以便项目不会一直冗余地重建.
提前致谢
编辑
为了澄清,以下是重现问题的步骤:
请注意,您不必向解决方案添加单行代码.
由于对外部文件的一些引用,我也遇到了同样的问题:当CopyToOutputDirectory属性设置为Always时,即使没有对代码进行任何修改,也会一遍又一遍地重建大量项目。
在 VS2013 Update 2 中,我无法仅通过添加 Fake Assembly 来重现该问题,但如果CopyToOutputDirectory将 Fake Assembly 设置为 或Always(PreserveNewest即,如果 VS GUI 中较新,则复制),我确实可以重现该问题。
在您的情况下,我会使用文本编辑器仔细检查 .csproj 是否包含如下所示的任何标签:
<Fakes Include="Fakes\mscorlib.fakes">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</Fakes>
Run Code Online (Sandbox Code Playgroud)
也就是说,CopyToOutputDirectory设置为Always或PreserveNewest,在中修改它们
<Fakes Include="Fakes\mscorlib.fakes" />
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1603 次 |
| 最近记录: |