Как я могу настроить в проекте VS2010 C # сборку MSBuild от VS2008 - PullRequest
0 голосов
/ 18 мая 2011

Я разработал инструмент, который я использую для создания других файлов решения, и, если это удастся, запускает вывод.Инструмент был изначально собран с VS2008, и файлы решения, которые должны быть собраны, также находятся в VS2008.Для создания файлов решения во время выполнения я добавил ссылки на сборки Microsoft.Build.Engine и Microsoft.Build.Framework, и пока все хорошо.

Недавно я был вынужден переместить свое основное решение на VS2010, но спутниковые решения, которые должны быть построены во время выполнения, должны быть сохранены в VS2008 на данный момент.Просто чтобы добавить еще больше удовольствия, решения VS2008 содержат только проекты C ++ (которые, как всем известно, они конвертированы в формат vcxproj в VS2010).

Проблема, с которой я столкнулся, заключается в том, что я не являюсьвозможность загрузки версий 3.5 упомянутых сборок.Несмотря на все мои усилия во время выполнения, он всегда загружает их версию 4.0.Это приводит к нежелательному эффекту: когда я пытаюсь построить решения VS2008, я получаю сообщение об ошибке: The project file "bla bla bla.vcproj" is in the ".vcproj" file format, which MSBuild no longer supports. Please convert the project by opening it in the Visual Studio IDE or running the conversion tool, or use MSBuild 3.5 or earlier to build it.

Проект C # со ссылкой на сборки MSBuild настраивается с помощью TargetFramework 3.5, а ссылки на сборкивыглядят так:

<Reference Include="Microsoft.Build.Engine, Version=3.5.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
  <SpecificVersion>True</SpecificVersion>
</Reference>
<Reference Include="Microsoft.Build.Framework, Version=3.5.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
  <SpecificVersion>True</SpecificVersion>
</Reference>

Я также пытался установить движок DefaultToolsVersion на 3.5, но это тоже не помогло.

Я пытаюсь избежать точной версии MSBuildЯ хочу, запустив новый процесс и отправив аргументы в командную строку, потому что это потребовало бы больше работы для регистрации регистратора и синхронизации сообщений, чтобы мое основное приложение могло знать, была ли сборка успешной, и в этом случае запустить вывод.Я действительно надеюсь, что это не единственный путь.

Любые идеи, решения или помощь любого рода действительно приветствуются.Заранее спасибо

1 Ответ

0 голосов
/ 20 мая 2011

Наконец-то мне удалось заставить его работать.Для справки: если случайно кто-то столкнется с той же проблемой, то проблема была в другом проекте в моем решении (не в том, который использует MSBuild), все еще нацеленный на framework 4, из-за которого время выполнения было 4.0 вместо 3.5

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