【手记】解决VS发布asp.net项目报错“该项目中不存在目标GatherAllFilesToPublish”及后续问题
2018-06-22 18:18
2747 查看
办法在最后。
用VS2017打开一个以前用VS2010写的asp.net项目后,设置好发布选项(发布到文件夹),发布的时候报错如图:
搜索一番,找到的办法是:
在项目文件(xxx.csproj)中,在 <Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" /> 上面添加一个 <PropertyGroup> 兄弟节点,添加好后如下:
... <PropertyGroup> <VisualStudioVersion Condition="'$(VisualStudioVersion)' == ''">10.0</VisualStudioVersion> <VSToolsPath Condition="'$(VSToolsPath)' == ''">$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)</VSToolsPath> </PropertyGroup> <Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" /> ...
完了保存>重新加载项目,再次发布,仍然报一样的错误,重开VS2017依旧,遂打开一个用VS2017新建的asp.net项目文件,对照发现,新项目的 <Import Project=... 这个地方总共有3个,如下:
<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" /> <Import Project="$(VSToolsPath)\WebApplications\Microsoft.WebApplication.targets" Condition="'$(VSToolsPath)' != ''" /> <Import Project="$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v10.0\WebApplications\Microsoft.WebApplication.targets" Condition="false" />
而老项目的缺中间那个,于是把它誊过去,保存>重加载>发布,可以了。但是,出现了一个警告:
这是令人不安的,于是仔细对比俩项目的这几个节点,发现老项目的 <Import Project="$(MSBuildExtensionsPath32)... 元素中缺少了最后那个 Condition="false" 属性,加上,发布和警告都解决了。
总结办法,把老项目的这个地方:
<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" /> <Import Project="$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v10.0\WebApplications\Microsoft.WebApplication.targets" />
替换为:
<PropertyGroup> <VisualStudioVersion Condition="'$(VisualStudioVersion)' == ''">10.0</VisualStudioVersion> <VSToolsPath Condition="'$(VSToolsPath)' == ''">$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)</VSToolsPath> </PropertyGroup> <Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" /> <Import Project="$(VSToolsPath)\WebApplications\Microsoft.WebApplication.targets" Condition="'$(VSToolsPath)' != ''" /> <Import Project="$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v10.0\WebApplications\Microsoft.WebApplication.targets" Condition="false" />
- EOF -
相关文章推荐
- vs2012\vs2013\vs2015碰到生成时报该错误:项目中不存在目标“GatherAllFilesToPublish”
- 该项目中不存在目标“GatherAllFilesToPublish”
- 关于 VS2010 Web项目发布时PipelinePreDeployCopyAllFilesToOneFolder不存在解决办法
- 目標 "GatherAllFilesToPublish" 不存在於專案中。
- VS 2005 安装Asp.net Ajax扩展后项目模板丢失问题的解决
- VS 2005 安装Asp.net Ajax扩展后项目模板丢失问题的解决
- Visual Studio 2010 发布Web项目提示The target "PipelinePreDeployCopyAllFilesToOneFolder" does not exist in the project.解决方法
- 转:Asp.Net网站项目发布到IIS后验证码不能显示的问题解决
- 安了个vs 2008 express后,诡异asp.net Ajax PageMethods的问题,怎么解决?
- ASP.NET Ajax发布时异步刷新失效的问题解决方法
- It is not possible to run two different versions of ASP.NET in the same IIS process.问题的解决
- 关于CS0016: Could not write to output file ‘c:\WINDOWS\Microsoft.NET\Framework\v4.0.30319\Temporary ASP.NET Files… ‘Access is denied.’ 的解决办法
- 解决VS2013调试ASP.NET中无法调试的问题:当前不会命中断点。在 XXXX.dll 中找到了 XXX.cs 的副本,但是当前源代码与 XXXX.dll 中内置的版本不同。
- 用ASP.NET做项目,本本上的系统是XP,网上下载了IIS6,安装完后出现HTTP500问题,解决之.接着出现了浏览页面时跳出登陆框让输用户名及密码,GOOGLE了一下,原来是权限不够,解决方法
- asp.net程序在调式和发布之间图片路径问题的解决方法
- 【ASP.NET 问题】IIS发布网站后出现“检测到在集成的托管管道模式下不适用的ASP.NET设置”的解决办法
- 解决VS2013调试ASP.NET中无法调试的问题:当前不会命中断点。在 XXXX.dll 中找到了 XXX.cs 的副本,但是当前源代码与 XXXX.dll 中内置的版本不同。
- 【ASP.NET 问题】IIS发布网站后出现 "处理程序“PageHandlerFactory-Integrated”在其模块列表中有一个错误"的解决办法
- VS2017 创建的 ASP.NET Core 1.1 Web 项目 发布的IIS7提示“HTTP Error 502.5 - Process Failure”
- 解决用Visual Web Developer 2005编译asp.net 2.0项目时无dll文件的问题