我在使用lightwitch应用程序发布到visual studio之外的软件包时遇到了一些问题。
我想我可能使用了错误的命令,但我无法找到有关我应该使用哪些命令的任何信息。
我的命令如下:
MSBuild "Path To My Sln.sln" /p:VisualStudioVersion=12.0;DeployOnBuild=true;PublishProfile=Release;Configuration=Release
我收到以下错误:
C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v12.0\Web\Microsoft.Web
.Publishing.targets(3899,5): msdeploy error ERROR_EXCEPTION_WHILE_CREATING_OBJECT:
Web deployment task failed. (Object of type 'manifest' and path
'manifestpath\projectname.xml' cannot be created. Learn more at:
http://go.microsoft.com/fwlink/?LinkId=221672#ERROR_EXCEPTION_WHILE_CREATING_OBJECT.)
原因是清单文件中的app.publish文件夹不存在。该文件夹应位于bin中。
当我通过VS发布app.publish文件夹时,我的当前想法是VS做了我正在运行的命令没有的东西,我不知道那是什么。
需要通过命令行工作的原因是我们可以在构建服务器上创建一个包。
答案 0 :(得分:3)
理论上,您应该能够定位三个lightswitch项目的Publish
根项目的.lsxtproj
目标。这将触发所有依赖项的构建,然后将Server和HtmlClient项目输出推送到Publish\
所在的.lsxtproj
文件夹中的包。
DeployOnBuild
属性由标准Web项目目标文件公开,以触发创建包,但似乎这并不适用于LightSwitch项目,我认为这是有意义的Voodoo tm 正在构建它。所以你需要删除它。
如果您要创建另一个项目文件作为构建脚本,那么,您可以执行以下操作:
<?xml version="1.0" encoding="utf-8"?>
<Project MSBuildVersion="4.0" ToolsVersion="12.0" DefaultTargets="LSPublish"
xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Target Name="LSPublish">
<MSBuild Projects="[path_to_yourproj].lsxtproj" Targets="Publish" />
</Target>
</Project>
答案 1 :(得分:0)
首先,您应该在Visual Studio中手动发布LightSwitch应用程序。这将在LightSwitch应用程序项目文件中设置适当的属性。
LightSwitch项目没有发布配置文件,因此很遗憾,您无法在场景中使用这些配置文件。如果要从命令行动态设置它们,则需要使用MSBuild中的/ p开关覆盖LightSwitch项目中定义的任何属性。
下一步是你应该在LightSwitch项目文件而不是解决方案上调用msbuild。你需要调用“发布”目标。所以这最终看起来像这样(项目文件扩展名将根据您使用的LightSwitch版本而有所不同): msbuild MyLightSwitchApp.lsproj / t:发布/ p: