我有一个.vbproj,它是一个VB.NET Web应用程序项目。我可以构建包含该项目的解决方案,然后右键单击该项目并在本地发布。 VS 2013专业版更新3没有任何问题。
我正在尝试构建此解决方案,然后使用Jenkins CI中的msbuild插件在VS之外发布项目。
项目没有发布,因为它说它正在跳过不可发布的项目。
命令及其输出如下:
执行命令
cmd.exe /C C:\Windows\Microsoft.NET\Framework\v4.0.30319\msbuild.exe
/t:Publish /p:VisualStudioVersion=12.0 /p:OutDir=C:/temp/eric
StarWebPortal/StarWebPortal/StarWebPortal.vbproj && exit
%%ERRORLEVEL%% from C:\Tools\Jenkins\jobs\STAR-dev_POC\workspace
[workspace] $ cmd.exe / C. C:\ Windows \ Microsoft.NET \ Framework \ v4.0.30319 \ msbuild.exe / t:发布 /p:VisualStudioVersion=12.0 / p:OutDir = C:/ temp / eric StarWebPortal / StarWebPortal / StarWebPortal.vbproj&&出口 %% ERRORLEVEL %% Microsoft(R)Build Engine版本4.0.30319.18408 [Microsoft .NET Framework,版本4.0.30319.18444]版权所有(C) 微软公司。保留所有权利。
Build build 8/22/2014 11:46:51 AM。目标" MvcBuildViews"上市 在" C:\ Program Files中的BeforeTargets属性中 (86)\的MSBuild \微软\ VisualStudio的\ V12.0 \网络\ Microsoft.Web.Publishing.targets (840131)"在项目中不存在,将被忽略。项目 " C:\工具\詹金斯\作业\ STAR-dev_POC \工作空间\ StarWebPortal \ StarWebPortal \ StarWebPortal.vbproj" 在节点1上(发布目标)。 _DeploymentUnpublishable:跳过不可发布的项目。完成建筑项目 " C:\工具\詹金斯\作业\ STAR-dev_POC \工作空间\ StarWebPortal \ StarWebPortal \ StarWebPortal.vbproj" (发布目标)。
知道为什么它在VS内而不是从msbuild命令行工作?
答案 0 :(得分:6)
您必须将Jenkins配置为向MsBuild.exe传递另外两个参数/p:DeployOnBuild=true
和/p:PublishProfile=your_publish_profile.pubxml
。
该命令应该类似于msbuild your_vb_project.vbproj /p:DeployOnBuild=true /p:PublishProfile=publish_profile.pubxml
只要与publish_profile.pubxml
位于同一目录下,您就不需要指定vbproj
的路径。
答案 1 :(得分:0)
从Visual Studio 2013开始,MSBuild现在是.NET Framework的一个独立组件,包含在VS的安装中。它也可用作构建服务器的单独download。看起来你正在使用" old" v4.0 MSBuild路径。您需要使用类似C:\Program Files(x86)\MSBuild\12.0\bin
的新MSBuild路径。您需要配置Jenkins MSBuild插件才能使用此路径。