简体   繁体   中英

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.

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.

我在VS 2017中将目标框架从4.7更改为4.6.1,并且已修复

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.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM