MSBuild无法为Web Service项目生成部署包,该如何处理?
我懂你现在的困扰——用MSBuild.exe *slnfile* /p:DeployOnBuild=true /p:CreatePackageOnPublish=true这条命令能顺利给Web Application生成部署包,但Web Service项目不仅不吃这套,连Visual Studio里的“Publish”选项都找不到,想打包部署可太头疼了对吧?别着急,试试下面这几个方法:
手动修改项目文件配置
直接打开Web Service项目的.csproj文件,找到<PropertyGroup>节点,添加上这些配置项:<DeployOnBuild>true</DeployOnBuild> <CreatePackageOnPublish>true</CreatePackageOnPublish> <WebPublishMethod>Package</WebPublishMethod> <PackageAsSingleFile>true</PackageAsSingleFile> <DesktopBuildPackageLocation>$(SolutionDir)\Packages\MyWebService.zip</DesktopBuildPackageLocation>其中
DesktopBuildPackageLocation可以自定义你想要的包存储路径和文件名,方便后续查找。单独针对Web Service项目执行MSBuild命令
不用再针对整个解决方案执行命令,直接瞄准Web Service项目文件来跑:MSBuild.exe YourWebServiceProject.csproj /p:Configuration=Release /p:DeployOnBuild=true /p:CreatePackageOnPublish=true记得把
YourWebServiceProject.csproj换成你实际的项目文件名,Configuration=Release也可以根据需求改成Debug模式。WCF类型Web Service的额外配置
如果你的Web Service是WCF类型,除了上面的步骤,还要确保.csproj的<ItemGroup>里包含这条配置,保证打包时能正确带上Web.config:<Service Include="Web.config" />
完成这些操作后,MSBuild就会像处理Web Application一样,给你的Web Service生成完整的部署包,你在指定路径就能找到打包好的zip文件,里面包含了所有部署需要的文件和配置。
内容的提问来源于stack exchange,提问作者Richard Schaefer

