VS2017 MSB4057 Цель "CreateManifestResourceNames" не существует в проекте
Когда VS2017 использовался для создания решения с сохранением состояния и создания стандартного стандартного кода, в результате два проекта получили две разные версии MSBuild. Приложение использует MSBuild версии 1.5.0. Сервис использует MSBuild версии 1.6.0 (текущая "последняя").
Если я запускаю решение таким образом, оно отлично работает в моем локальном кластере Service Fabric.
Но когда после того, как я использую NuGet, чтобы обновить MSBuild приложения до 1.6.0 (так что и приложения, и серверные проекты используют одно и то же), возникают следующие ошибки.
Severity Code Description Project File Line Suppression State
Error The OutputPath property is not set for project 'gt_strd5.sfproj'. Please check to make sure that you have specified a valid combination of Configuration and Platform for this project. Configuration='Debug' P follow a project-to-project reference to this project, this project has belatform='x64'. This error may also appear if some other project is trying toen unloaded or is not included in the solution, and the referencing project does not build using the same or an equivalent Configuration or Platform. gt_strd5 C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\MSBuild\15.0\Bin\Microsoft.Common.CurrentVersion.targets 737
Severity Code Description Project File Line Suppression State
Error MSB4057 The target "CreateManifestResourceNames" does not exist in the project. gt_strd5 C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\MSBuild\15.0\Bin\Microsoft.Common.CurrentVersion.targets 2630
2 ответа
Я получал эту ошибку в контроле PCF.
Запустить командную строку разработчика VS2017/ VS2019
a) Удалите пробелы из вашей папки, например Test%20-%20PCFs (имя, созданное системой управления версиями), должно быть TestPCFs
б) Перейдите в папку проекта pcf из строки cmd и запустите msbuild /t: restore
б) Перейдите в папку проекта cds из строки cmd и запустите msbuild /t: restore
c) В папке проекта cds запустите msbuild
г) Для развертывания выпуска запустите msbuild /p:configuration=Release
Для других типов проектов
а) Удалите пробелы из имени вашей папки
б) запустите msbuild /t: restore
в) запустить msbuild
Я обнаружил, что после изменения некоторые ссылки в файле проекта приложения продолжали ссылаться на MSBuild 1.5.0. В моем случае файл gt_strd5.sfproj содержал четыре ссылки, которые нужно было обновить с 1.5.0 до 1.6.0. Смотрите фрагменты из XML ниже.
Импортировать проект = ".. \ packages \ Microsoft.VisualStudio.Azure.Fabric.MSBuild.1.5.0\ build \ Microsoft.VisualStudio.Azure.Fabric.Application.props" Condition = "Exists ('.. \ packages \ Microsoft. VisualStudio.Azure.Fabric.MSBuild.1.5.0\ build \ Microsoft.VisualStudio.Azure.Fabric.Application.props ') "..... Импортировать проект =".. \ packages \ Microsoft.VisualStudio.Azure.Fabric.MSBuild.1.5.0\ build \ Microsoft.VisualStudio.Azure.Fabric.Application.targets "Condition =" Exists ('.. \ packages \ Microsoft.VisualStudio.Azure.Fabric.MSBuild.1.5.0\ build \ Microsoft.VisualStudio.Azure.Fabric.Application.targets')"
Чтобы проверить это, я вернулся пару раз и смог воспроизвести и проблему, и это решение.
Надеюсь, это сэкономит кому-то еще время. С уважением