我研究了这个问题,但没有一个解决办法有效。我安装了Visual Studio Professional 2015,我正在使用TFS。我的NuGet版本是3.1.6。这个问题只发生在我的c# Web API/MVC项目中。
我得到以下错误:
这个项目引用了NuGet包(s),这是缺失的
电脑。使用NuGet包还原来下载它们。更多的
信息,见http://go.microsoft.com/fwlink/?LinkID=322105。的
丢失的文件是
. . \ \ Microsoft.Net.Compilers.1.0.0 \制造\ Microsoft.Net.Compilers.props包
I do not have .nuget folder in my solutions.
I have a packages folder in the solution and when I delete it, it seems like NuGet does rebuild the dependencies but the project still has the above error.
I tried removing the project from TFS and it didn't fix it.
Along with the above error, all the references in the project have yellow warning signs and say they are missing.
When I checked the NuGet Package Manager for the project, everything that is "missing" has a green tick next to it, including Microsoft.Net.Compilers.
I tried adding a new Web API/MVC project and it faced a similar problem where most references such as Owin were "missing" with the yellow warning sign.
对于DevOps/构建工程师,您可能可以针对受影响的SLN或缺乏SLN的项目修复此运行nuget恢复。我必须为我们所有UWP项目的CI/CD构建这样做。
Make sure nuget is installed on the build slave either in Visual Studio or standalone. If it's the latter, make sure it's in PATH and skip step 2.
Either open the VS Dev CMD console, or load it via an already open one, which you can do with the instructions below:
VS2015 call "%VS140COMNTOOLS%VsDevCmd.bat"
or
VS2017 call "%ProgramFiles(x86)%\Microsoft Visual Studio\2017\Enterprise\Common7\Tools\VsDevCmd.bat"
call nuget restore MyStuff.SLN or call nuget restore MyStuff.csproj if there's no SLN.
0
对于nuget引用,我们可以通过引用或通过包添加a。配置文件。
在Visual Studio 2017中,字母顺序或nuget引用由VS自动处理。
但是在Visual Studio 2019中。如果你的nuget引用不是按字母顺序排列的,那么VS就不要在引用文件夹中加载文件。
为了解决这个问题。——删除.csproj/vbproj或package.config中的所有引用。
——保存在记事本中。尝试通过Nuget包管理器添加这些。
第一次试试。一旦安装。
—右键单击解决方案->恢复所有nuget包。
-你会看到它加载了一个nuget引用。
——现在一个一个做。
——如果你100%确定你的参考文献是按字母顺序排列的。只需将它们全部粘贴到.csproj/vbproj或package.config中即可。
—恢复溶液中的所有核。
你会看到所有的符号都将被加载。在解决方案资源管理器的顶部图标刷新你的引用文件夹。
快乐的引用。
我用以下步骤解决了同样的问题
Removed package <package id="Microsoft.CodeDom.Providers.DotNetCompilerPlatform" version="2.0.1" targetFramework="net46" /> from package.config file.
Edit the .csproj project file and removed the below settings.
<Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">
<PropertyGroup>
<ErrorText>This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText>
</PropertyGroup>
<Error Condition="!Exists('..\packages\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.2.0.1\build\net46\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.props')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.2.0.1\build\net46\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.props'))" />
</Target>
Go to package manager console and run the command Update-Package –reinstall
第2点和第3点是其他用户提出的,我很感谢这些用户。第一点,从包中删除Microsoft.CodeDom.Providers.DotNetCompilerPlatform。配置文件更重要。此外,在运行第3点中提到的命令之后,问题就解决了。删除所有不需要的包并更新所需的包引用。
希望这能帮助到一些人。