2016-06-08 167 views
1

這是一個ClickOnce構建。它適用於.NET 4.5.1。 已安裝.NET 4.6.1 SDK。 安裝了MS Visual Studio 2015 Update 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 \微軟.Common.targets(4513,5): 警告MSB3155:位於'C:\ tm1 \ HE \ HE.Manager'中的項目'Microsoft.Net.Framework.4.6.1'不能爲 。 [C:\ TM1 \ HE \ HE.Manager \ HE.Managercopy.csproj]

這裏的錯誤日誌:

C:\ Windows \ Microsoft.NET \ Framework64 \ v4.0.30319 \ Microsoft.Common.targets(4513,5): 錯誤MSB3147:在 'C:\ tm1 \ HE \ HE.Manager \ Engine'中找不到需要的文件'setup.bin'。 [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:發佈 /屬性:......

這對於.NET 4.6.1無法正常工作。我在第一篇文章中提到了我提到的錯誤。

在我的註冊表

「HKEY_LOCAL_MACHINE \ SOFTWARE \ Wow6432Node \微軟\ GenericBootstrapper」

如果我添加一個4.0項與路徑「C:\ Program Files文件(x86)的\微軟Visual Studio 14.0 \ SDK \ Bootstrapper \「它的工作原理。

爲什麼不能使用註冊表項

「HKEY_LOCAL_MACHINE \ SOFTWARE \ Wow6432Node \微軟\ GenericBootstrapper \ 14。0"

而且......

如果我改變frameworkPath到...

frameworkPath =?「C:\ Program Files文件(86) \ MSBuild \ 14.0 \ Bin「

%frameworkPath%\ msbuild%PROJECT_NAME%copy.csproj/target:發佈 /屬性:......

並運行MSBuild調用它的工作。

我已經重新安裝了.NET 4.6.1 SDK,但仍然沒有運氣。

回答

0

聽起來像微軟遇到了一些問題,使這一進程順利,讓他們發表了知識庫文章,

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。 \程序文件(x86)\微軟的Visual Studio:

如果我創建了一個新的註冊表

'HKEY_LOCAL_MACHINE \ SOFTWARE \ Wow6432Node \微軟\ GenericBootstrapper \ 4.0',並加入的「C的路徑它只是工作 14.0 \ SDK \ Bootstrapper \'

。它的方式是

'HKEY_LOCAL_MACHINE \ SOFTWARE \ Wow6432Node \微軟\ GenericBootstrapper \ 14.0' 相同的路徑,但對我們來說哈克。

問題解決了。

相關問題