Что я могу сделать с пакетом nuget Microsoft.Net.Compilers.2.6.1, отсутствующим на моем компьютере, мой проект не будет развернут, является WebDeploy

#.net #model-view-controller #msbuild #nuget

#.net #модель-вид-контроллер #msbuild #nuget

Вопрос:

Я так расстроен, у меня есть MVC project 4.5, это очень простой проект. Я могу собрать его локально и опубликовать, но при попытке выполнить MSBuild я получаю следующую ошибку:

введите описание изображения здесь

Я проверил свой установленный узел Nuget, и он не был установлен (должно быть, я удалил его на этом этапе), но у меня возникла ошибка при его установке. В любом случае, я установил его снова, проверил ожидающие изменения и выполнил перестройку:

Теперь я получаю другую, но похожую ошибку:

введите описание изображения здесь

Теперь, я проверил, что пакет установлен в моем NuGet, он установлен. Мой package.config показывает следующее:

  <package id="Microsoft.Net.Compilers" version="2.6.1" targetFramework="net45" developmentDependency="true" />
  

Я проверил папку пакетов, в которой также есть «Microsoft.Net.Compilers.2.6.1 tools.

мой файл .csproj содержит следующее :

  <Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">
    <PropertyGroup>
      <ErrorText>This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them.  For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText>
    </PropertyGroup>
    <!--  <Error Condition="!Exists('packagesMicrosoft.Net.Compilers.Toolset.3.7.0buildMicrosoft.Net.Compilers.Toolset.props')" Text="$([System.String]::Format('$(ErrorText)', 'packagesMicrosoft.Net.Compilers.Toolset.3.7.0buildMicrosoft.Net.Compilers.Toolset.props'))" /> -->
    <!--  <Error Condition="!Exists('packagesMicrosoft.Net.Compilers.2.6.1buildMicrosoft.Net.Compilers.props')" Text="$([System.String]::Format('$(ErrorText)', 'packagesMicrosoft.Net.Compilers.2.6.1buildMicrosoft.Net.Compilers.props'))" /> -->
    <!--  <Error Condition="!Exists('packagesMicrosoft.Net.Compilers.2.6.1buildMicrosoft.Net.Compilers.props')" Text="$([System.String]::Format('$(ErrorText)', 'packagesMicrosoft.Net.Compilers.2.6.1buildMicrosoft.Net.Compilers.props'))" /> -->
    <Error Condition="!Exists('packagesMicrosoft.CodeDom.Providers.DotNetCompilerPlatform.3.6.0buildnet45Microsoft.CodeDom.Providers.DotNetCompilerPlatform.targets')" Text="$([System.String]::Format('$(ErrorText)', 'packagesMicrosoft.CodeDom.Providers.DotNetCompilerPlatform.3.6.0buildnet45Microsoft.CodeDom.Providers.DotNetCompilerPlatform.targets'))" />
    <Error Condition="!Exists('packagesMicrosoft.Net.Compilers.2.6.1buildMicrosoft.Net.Compilers.props')" Text="$([System.String]::Format('$(ErrorText)', 'packagesMicrosoft.Net.Compilers.2.6.1buildMicrosoft.Net.Compilers.props'))" />
    <!--   <Error Condition="!Exists('packagesMicrosoft.Net.Compilers.2.7.0buildMicrosoft.Net.Compilers.props')" Text="$([System.String]::Format('$(ErrorText)', 'packagesMicrosoft.Net.Compilers.2.7.0buildMicrosoft.Net.Compilers.props'))" /> -->
    <!--   <Error Condition="!Exists('packagesMicrosoft.Net.Compilers.3.7.0buildMicrosoft.Net.Compilers.props')" Text="$([System.String]::Format('$(ErrorText)', 'packagesMicrosoft.Net.Compilers.3.7.0buildMicrosoft.Net.Compilers.props'))" /> -->
  </Target>
  <Import Project="packag
  

Я пытался удалить этот выбор для .csproj, но это не имело никакого значения. Я просто не понимаю.

Приветствуется любая помощь.

Ответ №1:

Итак, эта проблема решена. Оказывается, что Microsoft.Net.Compiler.2.6.1 требует, чтобы ваш проект выполнялся под управлением .NET 4.7.2, наша среда и наши решения в настоящее время находятся на .NET 4.5. Этот пакет NuGet устанавливается автоматически при создании решения в VS2017. Надеюсь, это поможет другим, кто может столкнуться с этой проблемой.