2016-06-08 2 views
1

Это сборка ClickOnce. Он отлично работает для .NET 4.5.1. .NET 4.6.1 SDK установлен. MS Visual Studio 2015 Обновление 2 установлено. Windows 7 - ОС.Обновите до .NET 4.6.1 и теперь получите сообщение об ошибке MSB3147 с MSBuild

GenericBootstrapper: «HKEY_LOCAL_MACHINE \ SOFTWARE \ Wow6432Node \ Microsoft \ GenericBootstrapper» с 12.0 и 14.0 также.

  • В файлах проектов я изменил ToolsVersion с 12.0 до 14.0.
  • Я изменил TargetFrameworkVersion на 4.6.1.
  • И Загрузчик к:
<BootstrapperPackage Include="Microsoft.Net.Framework.4.6.1"> 
    <Visible>False</Visible> 
    <ProductName>Microsoft .NET Framework 4.6.1 (x86 and x64)</ProductName> 
    <Install>true</Install> 
</BootstrapperPackage> 

Вот предупреждение из журнала:

C: \ Windows \ Microsoft.NET \ Framework64 \ v4.0.30319 \ Microsoft .Common.targets (4513,5): предупреждение MSB3155: Пункт 'Microsoft.Net.Framework.4.6.1' не может быть , расположенный в 'C: \ tm1 \ HE \ HE.Manager'. [C: \ TM1 \ HE \ HE.Manager \ HE.Managercopy.csproj]

Вот журнал ошибок:

C: \ Windows \ Microsoft.NET \ Framework64 \ v4.0.30319 \ Microsoft.Common.targets (4513,5): Ошибка MSB3147: Не удалось найти файл 'setup.bin' в 'C: \ tm1 \ HE \ HE.Manager \ Engine'. [C: \ TM1 \ HE \ HE.Manager \ HE.Managercopy.csproj]

Почему это происходит с 4.6.1?

В нашем пакетном файле здесь наш MSBuild вызов:

frameworkPath = "C: \ Windows \ Microsoft.NET \ Framework64 \ v4.0.30319"

% frameworkPath% \ MSBuild% PROJECT_NAME% копия .csproj/target: publish /property: ......

Это не работает должным образом с .NET 4.6.1. Мы получаем ошибку, о которой я упоминал в своем первом сообщении.

В моем реестре

"HKEY_LOCAL_MACHINE \ SOFTWARE \ Wow6432Node \ Microsoft \ GenericBootstrapper"

если добавить пункт 4.0 с пути «C: \ Program Files (x86) \ Microsoft Visual Studio 14.0 \ SDK \ Bootstrapper \ "он работает.

Почему не используется элемента реестра

«HKEY_LOCAL_MACHINE \ SOFTWARE \ Wow6432Node \ Microsoft \ GenericBootstrapper \ 14.0"

Также ......

Если изменить frameworkPath к ...

frameworkPath =? "C: \ Program Files (x86) \ MSBuild \ 14.0 \ Bin»

% frameworkPath% \ MSBuild% PROJECT_NAME% copy.csproj/цель: публиковать /недвижимость: ......

и запустить вызов MSBuild.

Я переустановил SDK .NET 4.6.1 и до сих пор не повезло.

ответ

0

Похоже, Microsoft испытал некоторые проблемы, чтобы сделать процесс гладким, так что они опубликовали статью KB,

https://support.microsoft.com/en-us/kb/3119510

Грубо говоря, вам нужно вручную исправить дорожки/файлы и так далее.

Ну, прежде чем выполнять шаги, отмените предыдущие изменения.

1

Мы решили изменить каталог MSBuild для:

'frameworkPath = "C: \ Program Files (x86) \ MSBuild \ 14.0 \ Bin"'

. Используя старый `

'frameworkPath = "C: \ Windows \ Microsoft.NET \ Framework64 \ v4.0.30319"'

` казалось, его MSBuild просто не мог найти правильные инструменты для использование; даже изменяя атрибут ToolsVersion в файлах проекта до 14.0.

Он работал только тогда, когда я создал новый реестр

'HKEY_LOCAL_MACHINE \ SOFTWARE \ Wow6432Node \ Microsoft \ GenericBootstrapper \ 4.0' и добавил путь «C: \ Program Files (x86) \ Microsoft Visual Studio 14.0 \ SDK \ Bootstrapper \ '

. Который, кстати, тот же путь для

'HKEY_LOCAL_MACHINE \ SOFTWARE \ Wow6432Node \ Microsoft \ GenericBootstrapper \ 14,0', но было слишком Hacky для нас.

Проблема решена.

 Смежные вопросы

  • Нет связанных вопросов^_^