Отсутствует файл пакеты \ Microsoft. Net .Compilers.2.4.0 \ build \ Microsoft. Net .Compilers.props - PullRequest
0 голосов
/ 21 апреля 2020

Поскольку я пытался реструктурировать путь, используя ..\ в файле 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')" />

1 Ответ

0 голосов
/ 22 апреля 2020

Отсутствует файл пакеты \ 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 не распознает его, и когда вы хотите удалить этот пакет, узел не может быть удален автоматически, его можно изменить только вручную.

Кроме того, , задача Ошибка в 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.

И это изменит пакет nuget в соответствии с текущей средой, а также может исправить адреса DLL, ссылающиеся на неправильную DLL, и т. Д.

...