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.
Best Answer
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.