【问题标题】:System.IO.FileNotFoundException: Could not find file 'x\x\x\x\bin\debug\project.dllSystem.IO.FileNotFoundException:找不到文件'x\x\x\x\bin\debug\project.dll
【发布时间】:2011-04-17 17:45:30
【问题描述】:

我在我的 C# 项目中添加了几个文件夹,现在当我尝试从 NUnit 运行项目时,我总是遇到以下异常 -

System.IO.FileNotFoundException: 找不到文件 'x\x\x\x\bin\debug\project.dll

项目 dll 文件未生成,异常详情如下:

System.IO.FileNotFoundException...
   at System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath)
   at System.IO.FileStream.Init(String path, FileMode mode, FileAccess access, Int32 rights,         Boolean useRights, FileShare share, Int32 bufferSize, FileOptions options,               SECURITY_ATTRIBUTES secAttrs, String msgPath, Boolean bFromProxy)
   at System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access)
   at NUnit.Core.AssemblyReader.CalcHeaderOffsets()
   at NUnit.Core.AssemblyReader..ctor(String assemblyPath)
   at NUnit.Util.RuntimeFrameworkSelector.SelectRuntimeFramework(TestPackage package)
   at NUnit.Util.DefaultTestRunnerFactory.GetTargetProcessModel(TestPackage package)
   at NUnit.Util.DefaultTestRunnerFactory.MakeTestRunner(TestPackage package)
   at NUnit.Util.TestLoader.LoadTest(String testName)

【问题讨论】:

  • dll 确实在 `x\x\x\x\bin\debug` 中吗?还是在另一个目录中?
  • 不,它不存在,我构建项目时没有生成dll。

标签: c# nunit


【解决方案1】:

这是您输入的文件路径吗?如果是这样,请使用 Windows 资源管理器复制/粘贴正确的路径以避免任何拼写错误。

如果是你通过VS添加的引用dll,你应该删除引用并重新添加它以更新它的路径。

正如@Oded 所说,验证文件是否存在并且路径是否正确。

【讨论】:

  • 当我构建项目时,没有生成dll等错误。虽然我不确定为什么没有生成 dll。
  • @Tarun:让我看看我是否能更好地理解您:您的解决方案中有多个项目吗?其中之一是您正在生成的类库吗?如果是这样,您可以单击“全部重建”,也可以手动右键单击正确的项目并选择“构建”。如果您有多个项目,生成 .dll 的项目可能会设置为构建可执行文件或其他内容。即勾选Project->“项目名称”属性->Application->Output Type。当且仅当它应该生成一个类时,它才应该设置为类库。
  • @Eugenio,我只有一个项目,其输出设置为“类库”,我按照您的指定构建项目,但在 \bin\debug 文件夹下看不到项目 dll。当我构建项目时,它一直都在那里。从那时起我所做的唯一更改是 - 我创建了几个文件夹并将 cs 文件移动到这些文件夹中。现在一切都注定了:(,我想知道我是否应该再次创建项目......
  • @Tarun:“注定”是一个非常强烈的词! :) 好的。让我们逐步诊断:1)您的项目名称是什么。是“项目”还是别的什么? 2)当你构建你的项目时,你会得到任何构建错误吗? 3)项目构建成功后,是否有任何输出dll?他们叫什么名字?你希望他们的名字是“项目”吗? ---- 简而言之,Visual Studio 是否会生成任何 dll?如果它没有这样做,它是否会通知您问题?
  • @Tarun:您可以尝试开始一个新项目,但最好找出导致问题的原因。您是否尝试过将 .cs 文件返回到其原始位置?也许正在发生的事情是 VS 找不到源文件,因此它无法成功构建您的项目以生成 dll。这很重要:您能否验证是否存在任何构建错误?重建后,您可以通过查看屏幕左下方的状态栏来执行此操作。它是说“构建成功”还是“构建失败”?
【解决方案2】:

我不确定这是否会对您有所帮助。我来这里是为了寻找同样的错误。 我在测试方法中使用了类似的东西来读取我刚刚添加到项目中的 Json 文件。

string currentDirectory = Directory.GetCurrentDirectory();

它在调试文件夹中抛出相同的错误“System.IO.FileNotFoundException:找不到文件”。

我通过更改文件的设置解决了这个问题。 右键单击 > 属性 > 将复制到输出目录设置为始终复制。 Screen shot of the above

我不确定这是否是您手动添加的文件的默认设置。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-08-02
    • 1970-01-01
    • 2014-01-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-11-03
    • 2022-11-20
    相关资源
    最近更新 更多