预定义类型'System.String'未被定义或导入。

5

我有一个MVC5应用程序,正在尝试离线运行。我离线安装了VS2017,但是当我尝试构建项目时,它会抛出多个错误,与缺少所有的.NET组件和dll相关。当我尝试添加这些组件时,它们无法添加。请帮忙解决。

PS:该机器上没有网络。


你使用安装程序安装了VS吗?如果是的话,你安装了哪些工作负载和组件? - MindSwipe
我安装了.NET桌面开发和ASP.NET以及Web开发组件。 - Vusi85
3个回答

12

我有时也会遇到这个问题。通常解决方法是执行 dotnet restore 命令。这与在 VS 解决方案浏览器中运行还原不同,您需要通过命令行来执行此命令。为了执行它,您需要安装 .NET Core SDK。 dotnet restore 通常很擅长修复一些项目问题,例如 VS 在幕后创建的损坏的 .json 文件,并且我猜它能够在没有互联网连接的情况下修复这些文件,但我没有尝试过。


我安装了.NET Core SDK,它不再抱怨了。但是在构建解决方案时,我遇到了这些运行时错误。所有的PM控制台命令都无法安装缺失的程序集,因为它尝试连接到互联网。 - Vusi85
@Vusi85 PM 命令可连接到指定的 NuGet 源。如果您的计算机处于离线状态,建议禁用所有在线软件包源。您可以设置本地文件夹作为 NuGet 源,并将所有软件包部署到该文件夹中。 - Georg
谢谢,尝试了标准的清理和构建步骤,但没有成功。在VS PS终端项目文件夹中运行dotnet restore立即解决了问题。 - ulkas
谢谢,尝试了标准的清理和构建步骤,但没有成功。在VS PS终端项目文件夹中运行dotnet restore立即解决了问题。 - undefined

0
尝试清理并重新构建您的解决方案。我曾经遇到过这个问题,我的dll文件出了点问题。

0

很明显这是与我的Omnisharp错误相同。我从C#扩展程序中更改了Omnisharp路径版本(C# > 卸载 > 安装另一个版本),然后重新打开了VSCode。这对我的项目起作用了,所有的错误都消失了。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接