平凡小站

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

统计

VS 2022 WEB发布编译失败

VS2022当安装在非默认路径时,每次更新后,在发布时,就会出来编译失败的提示,比如这样:

C:\VS2022\Preview\MSBuild\Microsoft\VisualStudio\v17.0\Web\Transform\Microsoft.Web.Publishing.AspNetCompileMerge.targets(132,5): 错误 : Can't find the valid AspnetMergePath

这时关闭VS,用管理员模式(不然改了不能保存)打开一个记事本,然后打开上面的这个文件,查找AspnetMergePath是这样的

复制代码
<Target 
Name="GetAspNetMergePath" DependsOnTargets="$(GetAspNetMergePathDependsOn)" Condition ="'$(GetAspNetMergePath)' != 'false'"> <PropertyGroup> <AspnetMergeName>aspnet_merge.exe</AspnetMergeName> <AspnetMergePath Condition="Exists('$(TargetFrameworkSDKToolsDirectory)$(AspnetMergeName)')">$(TargetFrameworkSDKToolsDirectory)</AspnetMergePath> </PropertyGroup> <Error Condition="'$(AspnetMergePath)' == '' Or !Exists($(AspnetMergePath))" Text="Can't find the valid AspnetMergePath" /> </Target>
复制代码

 

在AspnetMergePath 这一节,可以看到它需要一个TargetFrameworkSDKToolsDirectory,因为AspnetMergeName,即aspnet_merge.exe就放这里面。但恰恰就是这个变量不存在。
去C盘找这个文件,原来放在C:\Program Files (x86)\Microsoft SDKs\Windows\v10.0A\bin\NETFX 4.8 Tools里面。

把这个路径添加进去,跟在AspnetMergeName后面就行,注意路径最后要加一个反斜杠,因为在引用的时候后面直接带了文件名,如果不加反斜杠,还是会说找不到文件。

<PropertyGroup>
……
<AspnetMergeName>aspnet_merge.exe</AspnetMergeName> <TargetFrameworkSDKToolsDirectory>C:\Program Files (x86)\Microsoft SDKs\Windows\v10.0A\bin\NETFX 4.8 Tools\</TargetFrameworkSDKToolsDirectory> …… </PropertyGroup>

 

再打开VS发布编译就没问题了。

posted on   何辉煌  阅读(263)  评论(1编辑  收藏  举报

相关博文:
阅读排行:
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 单元测试从入门到精通
点击右上角即可分享
微信分享提示