Tamam. DeploymentItem, bunu düzeltmenin bir yoludur. Ancak, DeploymentItem biraz kırılgandır.
İşte bunu nasıl düzelttim.
"Geçerli dizin" DeploymentItem ile aynı hizaya gelmelidir. Bulduğum en iyi uzlaşma, geçerli dizinin .sln dosyasının olduğu yere ayarlanmasıdır.
Klasörüm yapısı.
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()
{
}
}
"hile"
.sln evler klasöre CD (değişim dizini) yapmaktır. "Geçerli dizin" (CD'nin sonuç) de olduğu için
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
Şimdi "C: \ SomeRootFolder \", DeploymentItem göreli yol düzgün çalışır.
Jimminy Crickets ....... Bu biraz nutsy.
Not Paul Taylor
Running MsTest from the command line with a custom assembly base directory
benim için işe yaramadı burada cevap.
OWH sorunumu ben benzer bir hata alıyorum – aeruL