c# - 缺少的文件是packages\Microsoft.Net.Compilers.2.4.0\build\Microsoft.Net.Compilers.props

标签 c# .net visual-studio dll nuget

因为我在构建项目后尝试使用 csproj 文件中的 ..\ 来重构路径 它仍然显示构建项目后所述的错误,这里是下面的错误。

Error

此外,根据我在项目所在系统中检查的路径,我还有 Microsoft.Net.Compilers.props 的完整包,下面是项目的路径。

physical path

现在如果我输入..\或者不输入它仍然找不到系统的路径,下面是卸载.csproj文件后的代码。

<Import Project="..\packages\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.1.0.8\build\net45\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.props" Condition="Exists('..\packages\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.1.0.8\build\net45\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.props')" />

<Import Project="..\packages\Microsoft.Net.Compilers.2.4.0\build\Microsoft.Net.Compilers.props" Condition="Exists('..\packages\Microsoft.Net.Compilers.2.4.0\build\Microsoft.Net.Compilers.props')" />

<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />

最佳答案

The missing file is packages\Microsoft.Net.Compilers.2.4.0\build\Microsoft.Net.Compilers.props

首先,很高兴知道您已经自己解决了问题。

实际上,这个目标节点来自文件 packages\Microsoft.Net.Compilers.2.4.0\build\Microsoft.Net.Compilers.props它位于您的 nuget 包中,它将添加一个名为 EnsureNuGetPackageBuildImports 的目标进入你的xxx.csproj安装时的文件Microsoft.Net.Compilers nuget 包。

此外,因为您更改了默认值 <Error Condition="xxxx">由于某些原因(可能是将该项目从某处迁移到您的新代理中),该目标下的节点,nuget机制无法识别它,当您要卸载该包时,该节点无法自动删除,只能手动修改.

此外Error task在MSBuild中相当于根据一定的判断条件中断构造生成。 因此,在您当前的环境下,即如果找不到指定的Microsoft.Net.Compilers.props文件,您无法构建您的项目。

建议

1) 所以要解决这个问题,只需将条件编辑为正确的路径Microsoft.Net.Compilers.props即可正如你所做的那样。

<Error Condition="!Exists('..\packages\Microsoft.Net.Compilers.2.4.0\build\Microsoft.Net.Compilers.props')" xxxx />

2) 或者如果你的项目有很多这样的目标,我建议你可以先删除xxx.csproj中的这些目标。文件,然后运行 ​​update-package -reinstallTools --> Nuget Package Manager --> Package Manager Console

这会根据当前环境 reshape nuget包,还可以修复引用错误DLL的DLL地址等。

关于c# - 缺少的文件是packages\Microsoft.Net.Compilers.2.4.0\build\Microsoft.Net.Compilers.props,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61341267/

相关文章:

c# - Panel.Dock Fill 忽略其他 Panel.Dock 设置

c# - C# 中的 OpenSSL.exe s_client 等价物

c# - 在 Direct X 11 游戏中挂接 Direct X Endscene

c# - 如何在代码中找到单元测试必须覆盖的地方

c++ - 调试 :FASTLINK - What is this error?

visual-studio - 正则表达式:查找/替换之前没有给定字符串的所有子字符串?

visual-studio - Visual Studio帮助系统针对错误的框架版本

c# - 属性中使用的变量是否有任何 C# 命名约定?

.net - 所有者绘制 TextBox 以在 WinForms 中使用

c# - HttpWebResponse 中永无止境的 Stream