因为我在构建项目后尝试使用 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')" />
最佳答案
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 -reinstall
下Tools
--> 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/