升级到.NET 4.6.1,现在使用MSBuild

时间:2016-06-08 00:28:00

标签: .net msbuild clickonce .net-4.6.1

这是ClickOnce构建。它适用于.NET 4.5.1。 已安装.NET 4.6.1 SDK。 安装了MS Visual Studio 2015 Update 2。 Windows 7是操作系统。

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:项目&#39; Microsoft.Net.Framework.4.6.1&#39;不可能   位于&#39; C:\ tm1 \ HE \ HE.Manager&#39;。   [C:\ TM1 \ HE \ HE.Manager \ HE.Managercopy.csproj]

这里是错误日志:

  

C:\ Windows \ Microsoft.NET \ Framework64 \ v4.0.30319 \ Microsoft.Common.targets(4513,5):   错误MSB3147:找不到所需的文件&#39; setup.bin&#39;在   &#39; C:\ TM1 \ HE \ HE.Manager \引擎&#39 ;.   [C:\ TM1 \ HE \ HE.Manager \ HE.Managercopy.csproj]

为什么4.6.1会发生这种情况?

在我们的批处理文件中,这是我们的MSBuild电话:

  

frameworkPath =&#34; C:\的Windows \ Microsoft.NET \ Framework64 \ v4.0.30319&#34;

     

%frameworkPath%\ msbuild%PROJECT_NAME%copy.csproj / target:publish   /属性:......

这与.NET 4.6.1无法正常工作。我们收到了我在第一篇文章中提到的错误。

在我的注册表中

  

&#34; HKEY_LOCAL_MACHINE \ SOFTWARE \ Wow6432Node \微软\ GenericBootstrapper&#34;

如果我添加带有路径的4.0项目&#34; C:\ Program Files(x86)\ Microsoft Visual Studio 14.0 \ SDK \ Bootstrapper \&#34;它有效。

为什么不使用注册表项

  

&#34; HKEY_LOCAL_MACHINE \ SOFTWARE \ Wow6432Node \微软\ GenericBootstrapper \ 14.0&#34;

另外......

如果我将frameworkPath更改为...

  

frameworkPath =&#34; C:\ Program Files(x86)\ MSBuild \ 14.0 \ Bin&#34;

     

%frameworkPath%\ msbuild%PROJECT_NAME%copy.csproj / target:publish   /属性:......

并运行它可以运行的MSBuild调用。

我重新安装了.NET 4.6.1 SDK但仍然没有运气。

2 个答案:

答案 0 :(得分: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 \引导程序\'

。 <顺便说一下

的路径
  

'HKEY_LOCAL_MACHINE \ SOFTWARE \ Wow6432Node \ Microsoft \ GenericBootstrapper \ 14.0',但对我们来说过于苛刻。

问题解决了。

答案 1 :(得分:0)

听起来微软经历了一些问题,以使流程顺利进行,因此他们发布了一篇知识库文章,

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

粗略地说,你需要手动修复路径/文件等等。

好吧,在执行这些步骤之前,请回滚之前的更改。