Отладка переменных MsBuild - PullRequest
0 голосов
/ 04 октября 2019

Я работаю над набором проектов, которые поддерживались в течение нескольких лет и видели ряд обновлений версий Visual Studio. В результате мы получаем ряд ссылок на версии, которые приводят нас в замешательство, когда мы строим проекты на «свежих» клиентских разработчиках, без сбоев всех старых версий.

Например:

C: \ Repos \ MyOldProject.csproj (415,3): ошибка MSB4019: импортированный проект "C: \ Program Files (x86) \ MSBuild \ Microsoft \ VisualStudio \ v11.0 \ WebApplications \ Microsoft.WebApplication.targets"не был найден. Убедитесь, что путь в объявлении правильный, и что файл существует на диске.

Как вы можете ожидать, указанный файл не существует на диске. Глядя на указанное место в файле проекта, я нахожу это:

<Import Project="$(VSToolsPath)\WebApplications\Microsoft.WebApplication.targets" Condition="'$(VSToolsPath)' != ''" />

... И над этим:

<PropertyGroup>
    <VisualStudioVersion Condition="'$(VisualStudioVersion)' == ''">10.0</VisualStudioVersion>
    <VSToolsPath Condition="'$(VSToolsPath)' == ''">$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)</VSToolsPath>
</PropertyGroup>

Любопытно, что я не могу найти никаких примеров "v11.0 "в любых моих решений или проектов. Имея операторы условия в игре, я не могу с уверенностью сказать, имеет ли $(VSToolsPath) исходное значение, или если он слипается в этой точке!

Могу ли я найти источник этихтипы переменных?

Есть ли способ заставить MssBuild.exe вывести окончательное значение этих переменных?

-S

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...