mstest不复制项目中引用的库,但仅在运行时使用

THX*_*138 10 mstest

我有一个使用Microsoft Enterprise Library的项目,并使用配置为缓存管理器指定类型.

以这种方式高速缓存管理器加载取决于文库Microsoft.Practices.EnterpriseLibrary.ExceptionHandling.Logging.dll,其包含在我的测试项目作为参考,但库被直接的代码中使用(在编译时间).因此,编译的mytests.dll将不会引用该库(使用dotpeek验证).

问题1:为什么MSTest不将这样的库复制到temp文件夹进行测试? 问题2:有一个优雅的解决方法吗?

不优雅的解决方案#1:对包含的库进行虚拟引用(如本主题中所述);

或解决方案#2:使用MSTest Deploy配置显式包含库.

解决方案#3:
即使关闭了部署选项,在mstest中使用.testsettings文件也可以解决问题.即testsettings文件包含:

<Deployment enabled="false">
</Deployment>
Run Code Online (Sandbox Code Playgroud)

看起来这样做会导致mstest不在临时TestResults\user_HOST 2011-12-21 15_22_08\Out目录中运行,而是在bin\Debug(正确部署所涉及的库)中运行.

这是mstest的预期行为吗?我的意思是,如果在.testsettings文件中禁用了部署,mstest不使用临时目录?