Как установить SGEN toolpath в Msbuild для предназначения для 3,5 платформ

Я только что обновил проект от VS2008 до VS2010, но я все еще нацелен на 3,5 платформы.

В моем файле проекта у меня есть пользовательская задача выполнить SGEN для генерации моего XmlSerializers.dll. Однако версия sgen выполненные цели 4,0 платформы. В результате, когда я запускаю свое приложение, я получаю сообщение об ошибке:

"Не мог загрузить файл или блок 'XXXX.XXXX.XmlSerializers' или одна из его зависимостей. Этот блок создается временем выполнения, более новым, чем в настоящее время загруженное время выполнения, и не может быть загружен".

Задача Sgen похожа на это:

  
    
    
    
      
    
  

Существует $ ToolPath =" (SGenToolPath)". Как я заставляю его выполнить версию, которая предназначается 3.5?

Существует подобный вопрос здесь, но он не помогает мне очень.

18
задан Community 23 May 2017 в 11:53
поделиться

2 ответа

Я решил эту проблему, вручную настроив ToolPath так, чтобы он указывал на старую (версия 2.0.50727.3038) версию sgen.exe

На моем компьютере, это находится в: C: \ Program Files (x86) \ Microsoft SDKs \ Windows \ v7.0A \ Bin

Я изменил атрибут ToolPath на:

ToolPath="C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Bin"

, и это решило проблему.

Похоже, что по умолчанию новая версия фреймворка 4.0 запускается в папке: C: \ Program Files (x86) \ Microsoft SDKs \ Windows \ v7.0A \ Bin \ NETFX 4.0 Tools

Надеюсь, это поможет кому-то другому.

18
ответ дан 30 November 2019 в 06:17
поделиться

@Craig - Вы вручную установили фреймворк 7.0A на свой компьютер сборки. В таком случае проблема может быть в настройках реестра, а не в msbuild. Взгляните на LocalMachine -> Software -> Microsoft -> MSBuild -> ToolsVersions -> 4.0 -> SDK35ToolsPath и убедитесь, что указанный там регистрационный ключ действителен. (Подсказка: убедитесь, что -x86 присутствует, только если существует ключ -x86.)

5
ответ дан 30 November 2019 в 06:17
поделиться
Другие вопросы по тегам:

Похожие вопросы: