#.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. Надеюсь, это поможет другим, кто может столкнуться с этой проблемой.