首页 > 解决方案 > 缺少的文件是 packages\Microsoft.Net.Compilers.2.4.0\build\Microsoft.Net.Compilers.props

问题描述

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

错误

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

物理路径

现在,如果我放..\或不放它仍然找不到系统的路径,这里是卸载下面的.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')" />

标签: c#.netvisual-studiodllnuget

解决方案


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

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

实际上,这个目标节点来自你的 nuget 包中的一个文件packages\Microsoft.Net.Compilers.2.4.0\build\Microsoft.Net.Compilers.props,它会在你安装 nuget 包时添加一个名为的目标EnsureNuGetPackageBuildImports到你的文件中。xxx.csprojMicrosoft.Net.Compilers

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

另外,MSBuild中的Error任务相当于根据一定的判断条件中断构造生成。因此,在您当前的环境中,即如果找不到指定的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

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


推荐阅读