当前位置:  开发笔记 > 编程语言 > 正文

为什么在从同一解决方案引用另一个项目时会收到​​FileNotFound异常?

如何解决《为什么在从同一解决方案引用另一个项目时会收到​​FileNotFound异常?》经验,为你挑选了1个好方法。

我正在学习如何使用NUnit.我的主要项目在它的解决方案中,并在同一个解决方案中创建了一个单独的项目,它将持有我自己的命名空间的单元测试.从该项目我添加对主项目的引用并添加一个

using MainProjectNamespace;

到它的顶部.

当我去NUnit时,我所做的任何测试都没有引用主要的项目工作.这些是我为了习惯NUnit而设置的测试,几乎没用.当NUnit运行实际测试时,测试会抛出此异常:

TestLibrary.Test.TestMainProject:System.IO.FileNotFoundException:无法加载文件或程序集'WpfApplication2,Version = 1.0.0.0,Culture = neutral,PublicKeyToken = null'或其依赖项之一.系统找不到指定的文件.

为什么我得到这个例外?

编辑:

现在,当我尝试将程序集加载到NUnit中时,它甚至不会加载(因此我甚至无法运行测试)

这是来自sup的异常,以及堆栈跟踪:

System.IO.DirectoryNotFoundException:找不到路径的一部分'LONG PATH HERE I DO NOT TYPE'

System.IO.DirectoryNotFoundException...

Server stack trace: 
    at System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath)
    at System.IO.Directory.SetCurrentDirectory(String path)
    at NUnit.Core.DirectorySwapper..ctor(String directoryName)
    at NUnit.Core.Builders.TestAssemblyBuilder.Load(String path)
    at NUnit.Core.Builders.TestAssemblyBuilder.Build(String assemblyName, Boolean autoSuites)
    at NUnit.Core.Builders.TestAssemblyBuilder.Build(String assemblyName, String testName, Boolean autoSuites)
    at NUnit.Core.TestSuiteBuilder.Build(TestPackage package)
    at NUnit.Core.SimpleTestRunner.Load(TestPackage package)
    at NUnit.Core.ProxyTestRunner.Load(TestPackage package)
    at NUnit.Core.ProxyTestRunner.Load(TestPackage package)
    at NUnit.Core.RemoteTestRunner.Load(TestPackage package)
    at System.Runtime.Remoting.Messaging.StackBuilderSink._PrivateProcessMessage(IntPtr md, Object[] args, Object server, Int32 methodPtr, Boolean fExecuteInContext, Object[]& outArgs)
    at System.Runtime.Remoting.Messaging.StackBuilderSink.PrivateProcessMessage(RuntimeMethodHandle md, Object[] args, Object server, Int32 methodPtr, Boolean fExecuteInContext, Object[]& outArgs)
    at System.Runtime.Remoting.Messaging.StackBuilderSink.SyncProcessMessage(IMessage msg, Int32 methodPtr, Boolean fExecuteInContext)

Exception rethrown at [0]: 
    at System.Runtime.Remoting.Proxies.RealProxy.HandleReturnMessage(IMessage reqMsg, IMessage retMsg)
    at System.Runtime.Remoting.Proxies.RealProxy.PrivateInvoke(MessageData& msgData, Int32 type)
    at NUnit.Core.TestRunner.Load(TestPackage package)
    at NUnit.Util.TestDomain.Load(TestPackage package)
    at NUnit.Util.TestLoader.LoadTest(String testName)

编辑2:上面的路径显然是我的硬盘驱动器

EDIT3:我刚从NUnit上的Debug切换到Release,并从TestingLibrary的release文件夹中加载了dll ......然后加载了!3个特定于命名空间的测试中有1个起作用.到了某个地方,我.

EDIT4:Welllllllll ......我现在可以实际运行测试,但我回到了原来的错误.IT部门没有找到主要项目的装配



1> Marc Gravell..:

编译器删除所有未使用的引用,并且不会不必要地部署dll.A using(单独)不算作用.通过"复制到输出目录"设置标记要部署的dll,或者添加一些真正使用dll中声明的类型的代码.

推荐阅读
360691894_8a5c48
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有