Ok. The DeploymentItem is a way to fix this. However, DeploymentItem is a little fragile.
Here is how I fixed it.
The "current directory" has to line up with the DeploymentItem. The best compromise I found would be to set the current directory to where the .sln file is.
Here is my folder structure.
C:\SomeRootFolder\
C:\SomeRootFolder\MySolution.sln
C:\SomeRootFolder\packages\
C:\SomeRootFolder\packages\MyNugetPackage.1.2.3.4\lib\net45\SomeThirdPartyDll.dll
C:\SomeRootFolder\MyTestProject\MyTestProject.csproj
C:\SomeRootFolder\MyTestProject\MyTestClass.cs
MyTestClass.cs
[TestClass]
public class MyTestClass
{
[TestMethod]
/* The DeploymentItem item below is for error ::: Warning: Test Run deployment issue: The assembly or module 'SomeDll' directly or indirectly referenced by the test container 'C:\SomeRootFolder\MyTestProject\bin\debug\MyTestProject.dll' was not found. */
/* There must be a CD (to the .sln folder) command... before the MsTest.exe command is executed */
[DeploymentItem(@".\packages\MyNugetPackage.1.2.3.4\lib\net45\SomeDll.dll")]
public void MyTest()
{
}
}
The "trick" is to do a CD (change directory) to the folder that houses the .sln.
REM Now the normal restore,build lines
nuget.exe restore "C:\SomeRootFolder\MySolution.sln"
REM the above nuget restore would create "C:\SomeRootFolder\packages\MyNugetPackage.1.2.3.4\lib\net45\SomeThirdPartyDll.dll"
MSBuild.exe "C:\SomeRootFolder\MySolution.sln" /p:Configuration=Debug;FavoriteFood=Popeyes /l:FileLogger,Microsoft.Build.Engine;logfile=MySolution.Debug.Build.log
REM (the below line is the trick to line up the 'current folder' with the relative path of the DeploymentItem)
cd "C:\SomeRootFolder\"
REM now the below will work without the annoying message, note that C:\SomeRootFolder\MyTestProject\bin\Debug\SomeThirdPartyDll.dll exists
MsTest.exe /testcontainer:"C:\SomeRootFolder\MyTestProject\bin\Debug\MyTestProject.dll" /resultsfile:MyTestProject.Dll.Results.trx
Now because the "current directory" (the result of the CD) is at "C:\SomeRootFolder\", the DeploymentItem relative path works correctly.
Jimminy Crickets.......that is a little nutsy.
Note, the Paul Taylor answer here
Running MsTest from the command line with a custom assembly base directory
did not work for me.