MSBuild 15 - The type or namespace 'Fakes' does not exist in the namespace

半世苍凉 提交于 2019-12-01 17:39:23

To extend @McMlok's answer above, i'll include what i did.

  • Source: My local VS2017 Premium Update 1 dev machine.
  • Target: The VS2017 Build Tools VM.

Copy Fakes folder:

  • From Source: c:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\MSBuild\Microsoft\VisualStudio\v15.0\
  • To Target: c:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools\MSBuild\Microsoft\VisualStudio\v15.0\

Copy Microsoft.QualityTools.Testing.Fakes.ImportAfter.targets file:

  • From Source: c:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\MSBuild\15.0\Microsoft.Common.targets\ImportAfter\
  • To Target: c:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools\MSBuild\15.0\Microsoft.Common.Targets\ImportAfter\

Copy Microsoft.QualityTools.Testing.Fakes.dll file:

  • From Source: c:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\Common7\IDE\PublicAssemblies\
  • To Target: GAC / %windir%\Microsoft.NET\assembly

Builds fine now. Thanks McMlok.

I have some workaround but It's not elegant.

You need to check path C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\MSBuild\Microsoft\VisualStudio\v15.0 if there is Fakes folder. If not you need to install TestTools workload or copy from another machine.

Next you need to check C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\MSBuild\15.0\Microsoft.Common.Targets\ImportAfter if there is file Microsoft.QualityTools.Testing.Fakes.ImportAfter.targets if not copy it from another machine. In this file is code for including fakes target to build process.

And finally you need to check if you have assembly Microsoft.QualityTools.Testing.Fakes.dll in GAC or another location where MSBuild find it.

This I did on my build machine with MS Build Tools 2017 and now build generate fakes assemblies.

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!