Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Error CS0234 when building solution using TFS 2017 BuildAgent

I ran into the following probem, when trying to build using a TFS build definition.

When executing a Build the agent logs following errors:

Error CS0234: The type or namespace name 'VisualStudio' does not exist in the namespace 'Microsoft' (are you missing an assembly reference?)

Error CS0246: The type or namespace name 'TestInitializeAttribute' could not be found (are you missing a using directive or an assembly reference?)

Error CS0246: The type or namespace name 'TestCleanupAttribute' could not be found (are you missing a using directive or an assembly reference?)

Error CS0246: The type or namespace name 'TestCleanup' could not be found (are you missing a using directive or an assembly reference?)

Error CS0246: The type or namespace name 'TestMethodAttribute' could not be found (are you missing a using directive or an assembly reference?)

So i understand the message that way, that the buildAgent is unable to find the following .dll

Microsoft.VisualStudio.TestTools.UnitTesting;

I have installed Visual Studio 2017 RC and Visual Studio 2017 Build Tools on the server, that runs TFS and the Buildagents.

I have also installed .net 4.6.1 on that mashine.

This accepted answer is not a solution for me.

There must be some kind of solution, that does not include to copy that dll into the git trunk and reference it from there.

Update

I am able to locally build the Solution using Visual Studio 2017 RC on that mashine. But the build agent still throws the same errors.

like image 472
Tobias Theel Avatar asked Feb 28 '17 14:02

Tobias Theel


3 Answers

I finaly figured out how to solve this issue.

I added the following nuget package as reference to my project:

https://www.nuget.org/packages/MSTest.TestFramework/

That is the mstestv2 Framework.

Afterwards i had to remove the old reference to the mstestv1 framework.

The build errors are gone now.

Update:

If you want to have your tests discoverable add MSTest TestAdapter to your project.

Thanks to Maciej for that Information.

like image 137
Tobias Theel Avatar answered Oct 17 '22 04:10

Tobias Theel


I changed the target framework from 4.7 to 4.6.1 in VS 2017, and it was fixed

like image 3
Charlie Avatar answered Oct 17 '22 04:10

Charlie


Make sure you have not checked in the /packages directory that contains the NuGet packages & DLLs. I accidentally checked this directory into source control and it prevented the NuGet restore task from correctly downloading the needed DLLs

The key message was a warning earlier in the build log:

Warning MSB3245: Could not resolve this reference. Could not locate the assembly "Microsoft.VisualStudio.TestPlatform.TestFramework, Version=14.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL". Check to make sure the assembly exists on disk. If this reference is required by your code, you may get compilation errors.

like image 2
JordanBean Avatar answered Oct 17 '22 02:10

JordanBean