克隆项目后 ASP.NET 应用程序无法运行

问题描述 投票:0回答:1

使用 Visual Studio 制作的 C# ASP.NET 项目。

我克隆了它,将文件夹项目复制到另一个地方。具有相对路径的依赖关系被破坏,我小心翼翼地再次添加它们。我可以构建该项目,但它会生成异常并且不起作用。 Visual Studio生成的

Myapp.deps.json
与原项目略有不同,它缺少两个.dll

...  
"DnsClient/1.3.1.0": {
    "runtime": {
      "DnsClient.dll": {
        "assemblyVersion": "1.3.1.0",
        "fileVersion": "1.3.1.0"
      }
    }
  },
  "SharpCompress/0.23.0.0": {
    "runtime": {
      "SharpCompress.dll": {
        "assemblyVersion": "0.23.0.0",
        "fileVersion": "0.23.0.0"
      }
    }
 ...
"libraries": {
...
"DnsClient/1.3.1.0": {
  "type": "reference",
  "serviceable": false,
  "sha512": ""
},
"SharpCompress/0.23.0.0": {
  "type": "reference",
  "serviceable": false,
  "sha512": ""
}

文件是自动生成的,我找不到任何原因,因为它们是不同的。 上面缺少的dll没有在依赖项中列出,我不知道它们来自哪里。

更新1

在第二个项目中,我清除了所有引用,然后创建了一个文件夹并复制了第一个项目中找到的所有 dll。它们是 17 个,Visual Studio 中的程序集引用只有 12 个。我再次添加了 12 个程序集引用,这次它们都与其他 5 个 dll 一起位于同一目录中(DnsClient.dll 是其中之一)。当我编译时,编译后的

Myapp.deps.json
包含DnsClient和SharpCompress。我想 Visual Studio 对引用的程序集进行了一些检查,如果在同一文件夹中找到它们,则会自动添加它们需要的其他 dll。我没有其他解释。

asp.net visual-studio
1个回答
0
投票

这些是常见步骤,因为它将得出答案:

  1. 删除克隆项目中每个目录的 bin 和 obj 文件夹。
  2. 执行干净的构建
  3. 尝试使用Beyond Compare之类的工具将克隆的项目与工作版本进行比较,在最高级别文件夹中进行比较,包括所有内容和子文件夹。
  4. 尝试将工作项目签入 GitHub,然后将其签出到新位置并查看它是否可以构建,无论如何,在摆弄时您都会希望保留工作副本。
  5. 执行 Nuget 命令并检查 Nuget 包管理器是否有任何问题。 Nuget Restore:dotnet build、dotnet run、dotnet Restore 是一些常用命令。
  6. 有时甚至修改自动生成的文件也会破坏记住的事情!
  7. 作为最后的手段,只需构建一个全新的空 .NET 解决方案并将代码文件添加到新项目中,有时该项目可能包含未知错误。
  8. 如果您使用 Git 进行克隆,那么签入时是否丢失了任何文件?
  9. 检查你包含的dll
  10. 最后一种二进制方法是创建一个空的 .NET 项目,并从工作版本中一次添加一个副本来构建项目,直到出现或未出现失败为止,还可以尝试比较您的 .sln 文件以及 csproj 和配置.

这些步骤将使其发挥作用。运行项目时您看到什么错误?

© www.soinside.com 2019 - 2024. All rights reserved.