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

问题描述 投票:0回答:2

因为我在构建项目后尝试使用

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# .net visual-studio dll nuget
2个回答
2
投票

丢失的文件是 包\Microsoft.Net.Compilers.2.4.0 uild\Microsoft.Net.Compilers.props

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

实际上,此目标节点来自 nuget 包中的文件

packages\Microsoft.Net.Compilers.2.4.0\build\Microsoft.Net.Compilers.props
,当您安装
EnsureNuGetPackageBuildImports
nuget 包时,它会将一个名为
xxx.csproj
的目标添加到您的
Microsoft.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 -reinstall
-->
Tools
-->
Nuget Package Manager
下运行
Package Manager Console

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


0
投票

这是一个典型的错误,当您添加包,然后为了优化,将它们添加到其他项目时,就会发生这种错误。然后,您删除这些软件包或将部分解决方案提供给没有这些软件包的同事。

不幸的是,当您删除它们时,路径并未从

csproj
中删除,因此请按照以下步骤操作:

打开

csproj
(或项目) 删除“
Import Project=[...]
”路径和“
<Error Condition="!Exists('..[...]

如果问题仍然存在,那就奇怪了。确保该项目中存在适当的包。

© www.soinside.com 2019 - 2024. All rights reserved.