我正在Visual Studio 2010
为我现有的项目创建一个测试项目。我添加了一个DLL
的引用,该System.IO.FileNotFoundException: Could not load file or assembly
'SOME NAME, Version=2.5.2.0, Culture=neutral, PublicKeyToken=null' or one of its dependencies. The system cannot find the file specified
正在我正在创建此测试项目的项目中使用。
现在问题是,在添加该DLL的引用之后,当我尝试执行测试时,我得到了一个运行时异常
Copy Local
我已通过将该引用的{{1}}属性更改为True来解决此问题。但我不想将其改为真。因为我不想在测试项目的调试文件夹中复制它。
还有其他方法吗?
答案 0 :(得分:0)
这是一个重要问题几年前我问自己,并找到了以下实际解决方案:
$root$\bin\Debug
$root$\bin
App.config
文件,看起来像下面的内容(注意我包含在探测路径中,.\Debug
当然,还有.\NUnit\bin
因为我把NUnit程序集放在那里)<?xml version =“1.0”encoding =“utf-8”?> <结构> <运行时间> < assemblyBinding xmlns =“urn:schemas-microsoft-com:asm.v1”> < probing privatePath =“调试; NUnit \ bin ”/> < / assemblyBinding> < /运行> < /结构>
顺便说一句,从不使用Copy Local = true
,我在这个主题上写了white books(它可以将编译时间减慢到 10次!)
答案 1 :(得分:0)
当我们谈论VS 2010中的测试项目时。然后我们有“Local.testsettings”文件,自动在“解决方案项目”目录内的测试解决方案中创建。
为了提供对测试项目中所需的可执行文件/ Dll的引用,我们需要添加它们的引用以及我们需要修改这个“Local.testsettings”文件,如果我们不想创建那些ececutables / DLL的本地副本。
现在问题是在这个文件中要改变什么? 双击Visual Studio中的“Local.testsettings”文件。 转到“单元测试”菜单项。 为要加载的程序集提供根文件夹。 (这可以是您希望在我们的测试项目中使用可执行文件/ DLL的任何目录)。 使用“添加文件夹”按钮,在运行测试时,在文件夹中提供相同的文件夹。
注意: 要保存此文件,您需要替换上一个文件。 单击“应用”按钮。 然后单击“另存为”按钮,选择旧“Local.testsettings”文件的位置并替换该文件。
对我来说,在我的测试项目中,我没有创建我的测试项目中使用的任何DLL的本地副本。更改“Local.testsettings”文件后,我可以成功运行我的测试。