【问题标题】: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
【发布时间】:2020-04-21 10:24:56
【问题描述】:

因为我在构建项目后尝试使用 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')" />

【问题讨论】:

  • 找到了解决方案,因为它包含下面的路径,这里是更新后的代码 去掉了.csproj最后一页的'..\'
  • 在顶部它将包含 '..\' 但低于它会没有'..\'。

标签: c# .net visual-studio dll nuget


【解决方案1】:

丢失的文件是 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包中,它会在你安装Microsoft.Net.Compilers时将一个名为EnsureNuGetPackageBuildImports的目标添加到你的xxx.csproj文件中nuget 包。

另外,由于某些原因(可能将此项目从某处迁移到您的新代理中),您已更改此目标下的默认&lt;Error Condition="xxxx"&gt; 节点,因此 nuget 机制无法识别它并且当你想卸载这个包时,节点不能自动删除,只能手动修改。

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

建议

1) 所以要解决它,你可以像你一样将条件编辑到Microsoft.Net.Compilers.props 的正确路径。

&lt;Error Condition="!Exists('..\packages\Microsoft.Net.Compilers.2.4.0\build\Microsoft.Net.Compilers.props')" xxxx /&gt;

2) 或者如果你的项目有很多,我建议你可以先删除xxx.csproj文件中的这些目标,然后在Tools下运行update-package -reinstall-->@987654333 @-->Package Manager Console.

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-11-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-04-15
    相关资源
    最近更新 更多