msbuild работает в командной строке, но VS2010 говорит, что проект "не выбран" - PullRequest
5 голосов
/ 22 марта 2011

Соответствующие файлы решения и проекта для этого вопроса находятся по адресу:

http://code.google.com/p/benfwaves/source/browse/trunk/BenfWaves.sln?r=26

http://code.google.com/p/benfwaves/source/browse/trunk/BenfWaves.Library/BenfWaves.Library.csproj?r=26

http://code.google.com/p/benfwaves/source/browse/trunk/BenfWaves.Client/BenfWaves.Client.csproj?r=26

http://code.google.com/p/benfwaves/source/browse/trunk/BenfWaves.Tests/BenfWaves.Tests.csproj?r=26

Я пытался реорганизовать файлы проекта, чтобы устранить избыточность и разрешить компиляцию в .NET 3.5, а также .NET 4.0.В настоящее время интегрированная среда разработки VS2010 может компилироваться для любого процессора в .NET 4.0.Если я пытаюсь использовать любой процессор для .NET 3.5, он говорит:

Ошибка 1 Не удалось загрузить файл или сборку 'System.Drawing, версия = 4.0.0.0, культура = нейтральная, PublicKeyToken = b03f5f7f11d50a3a' илиодна из его зависимостей.Система не может найти указанный файл.Строка 123, позиция 5. D: \ projects \ BenfWaves \ trunk \ BenfWaves.Client \ Properties \ Resources.resx 123 5 BenfWaves.Client

Я прочитал, что это может быть проблема с resgen.exe, но изменение 32-битного флага в этом файле не улучшило ситуацию.Кроме того, IDE не верит, что в проектах есть конфигурации для чего-либо, кроме Any CPU, что вызывает следующую проблему:

------ Skipped Build: Project: BenfWaves.Library, Configuration: Debug-4.0 Any CPU ------
           Project not selected to build for this solution configuration
------ Build started: Project: BenfWaves.Client, Configuration: Debug-4.0 x86 ------
           BenfWaves.Client -> D:\projects\BenfWaves\trunk\BenfWaves.Client\bin\x86\Debug-4.0\BenfWaves.Client.exe
------ Skipped Build: Project: BenfWaves.Tests, Configuration: Debug-4.0 Any CPU ------
           Project not selected to build for this solution configuration
========== Build: 1 succeeded or up-to-date, 0 failed, 2 skipped ==========

Он пропускает то, чего не должен.msbuild из командной строки работает на всех трех платформах и ничего не пропускает.

Любые предложения приветствуются.Спасибо.

Редактировать: После 27-й версии, по крайней мере, проблема "не выбран" больше не существует, потому что я добавил фиктивные строки конфигурации в проекты, чтобы обмануть VS2010 в работе.Однако проблема компиляции ресурсов в .NET 3.5 по-прежнему сохраняется.

Ответы [ 4 ]

13 голосов
/ 23 января 2012
  • В обозревателе решений щелкните правой кнопкой мыши Solution
  • и перейдите в Configuration Manager
  • . Убедитесь, что столбец Build проверен для проектов, которые вы хотите создавать каждый раз.
5 голосов
/ 22 марта 2011

Попробуйте убедиться, что для $ (Configuration) и $ (Platform) задано значение по умолчанию, поставив эти строки на первом месте в первой группе PropertyGroup ...

<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>

Это может быть актуально, поскольку среда IDE обрабатываетэти свойства особым образом и могут быть перепутаны, если они не имеют значения при загрузке проекта.

3 голосов
/ 22 марта 2011

Я вижу, что вы исправили ошибки конфигурации в вашем sln. Проблема Resx такая же, как описано здесь .

0 голосов
/ 22 марта 2011

Возможно, вы захотите попробовать изменить конфигурацию сборки решения.

http://msdn.microsoft.com/en-us/library/kwybya3w.aspx

следуйте указаниям под заголовком «Выбор и редактирование конфигурации сборки решения»

...