Squeak.ru - шаблоны программирования

Как я могу настроить таргетинг в проекте VS2010 C # на сборку MSBuild из VS2008

Я разработал инструмент, который использую для создания других файлов решений, и в случае успеха запускает вывод. Инструмент изначально был построен с 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

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

20.05.2011
Новые материалы

Угловая структура архитектуры
Обратите внимание, что эта статья устарела, я решил создать новую с лучшей структурой и с учетом автономных компонентов: https://medium.com/@marekpanti/angular-standalone-architecture-b645edd0d54a..

«Данные, которые большинство людей используют для обучения своих моделей искусственного интеллекта, поставляются со встроенным…
Первоначально опубликовано HalkTalks: https://hacktown.com.br/blog/blog/os-dados-que-a-maioria-das-pessoas-usa-para-treinar-seus-modelos-de-inteligencia-artificial- ja-vem-com-um-vies-embutido/..

Сильный ИИ против слабого ИИ: различия парадигм искусственного интеллекта
В последние годы изучению и развитию искусственного интеллекта (ИИ) уделяется большое внимание и прогресс. Сильный ИИ и Слабый ИИ — две основные парадигмы в области искусственного интеллекта...

Правильный способ добавить Firebase в ваш проект React с помощью React Hooks
React + Firebase - это мощная комбинация для быстрого и безопасного создания приложений, от проверки концепции до массового производства. Раньше (знаете, несколько месяцев назад) добавление..

Создайте API с помощью Python FastAPI
Создание API с помощью Python становится очень простым при использовании пакета FastAPI. После установки и импорта вы можете создать приложение FastAPI и указать несколько конечных точек. Каждой..

Веселье с прокси-сервером JavaScript
Прокси-серверы JavaScript — это чистый сахар, если вы хотите создать некоторую общую логику в своих приложениях, чтобы облегчить себе жизнь. Вот один пример: Связь клиент-сервер Мы..

Получить бесплатный хостинг для разработчиков | Разместите свой сайт за несколько шагов 🔥
Статические веб-сайты — это веб-страницы с фиксированным содержанием и его постоянным содержанием. Но теперь статические сайты также обрабатывают динамические данные с помощью API и запросов...