ASP.NET Website Project(.NET Framework 4.7.2)无.csproj文件时的CI/CD发布问题求助
ASP.NET Website Project(.NET Framework 4.7.2)无.csproj文件时的CI/CD发布问题求助
我之前帮朋友处理过一模一样的场景!这类没有.csproj的项目是ASP.NET Web Site Project,和带项目文件的Web Application Project机制完全不同,直接用常规的msbuild /t:Publish肯定行不通,给你几个亲测有效的解决办法:
方法一:调整MSBuild命令参数适配Web Site项目
Web Site项目需要用WebPublish目标而非Publish,直接用以下命令试试:
msbuild ./<website-folder-name> /t:WebPublish /p:WebPublishMethod=FileSystem /p:publishUrl=./publish /p:DeleteExistingFiles=True
WebPublishMethod=FileSystem指定发布到本地文件系统DeleteExistingFiles=True会清空发布目录的旧文件,避免残留
如果你有自定义的发布配置(比如之前在VS里导出的.pubxml文件),可以把它放在网站目录的Properties\PublishProfiles下,然后用命令指定配置文件:
msbuild ./<website-folder-name> /t:WebPublish /p:PublishProfile=YourCustomProfile.pubxml
方法二:用ASP.NET编译器直接预编译发布
如果MSBuild的方式还是有问题,可以试试官方的aspnet_compiler.exe工具,它专门用来处理无项目文件的Web Site:
C:\Windows\Microsoft.NET\Framework\v4.0.30319\aspnet_compiler.exe -v / -p ./<website-folder-name> -f ./publish
-v /表示网站的虚拟路径(这里用根路径即可)-p指定你的网站源目录-f强制覆盖发布目录的现有文件
几个关键注意点
- 确保你的环境安装了.NET Framework 4.7.2对应的MSBuild组件(比如Visual Studio的「ASP.NET和Web开发」工作负载,或者单独的MSBuild工具集)
- 检查网站目录下的
web.config有没有语法错误,配置文件出错会直接导致编译发布失败 - 如果网站依赖第三方DLL,要确保这些文件在网站的
bin目录下,否则发布后会缺失依赖
要是还是失败的话,把MSBuild输出的错误日志贴出来,大家可以帮你定位具体问题!
内容来源于stack exchange
相关产品推荐
相关产品推荐

