我需要将.NET网站项目发布到本地目录。该网站项目是解决方案的一部分,该解决方案还包含一个Web应用程序。 Visual Studio中的发布Web应用选项将网站毫无问题地发布到目录中,但是我无法通过msbuild发布该网站。
我的msbuild命令
msbuild "C:\...\ProjectName\website.publishproj" /p:deployOnBuild=true /p:publishProfile=Dev /p:PrecompileBeforePublish=false /p:VisualStudioVersion=14.0 /p:WebPublishMethod=FileSystem
我引用的dev.pubxml发布配置文件是:
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<WebPublishMethod>FileSystem</WebPublishMethod>
<LastUsedBuildConfiguration>Release</LastUsedBuildConfiguration>
<LastUsedPlatform>Any CPU</LastUsedPlatform>
<SiteUrlToLaunchAfterPublish />
<LaunchSiteAfterPublish>True</LaunchSiteAfterPublish>
<ExcludeApp_Data>True</ExcludeApp_Data>
<publishUrl>C:\FolderLocation</publishUrl>
<DeleteExistingFiles>False</DeleteExistingFiles>
<ExcludeFoldersFromDeployment>.vs</ExcludeFoldersFromDeployment>
</PropertyGroup>
</Project>
当前,该网站未发布到C:\FolderLocation
,而是发布到ProjectName\PrecompiledWeb\localhost_51636
。通过/p:OutDir=C:\FolderLocation
更改输出目录会将 Web应用发布到正确的位置,但是不会发布网站。我也尝试过/p:PublishDestination
和/p:DesktopBuildPackageLocation
msbuild参数,但是仍然存在原始问题。
我已经引用了Publish Artifacts for website goes to PrecompiledWeb和许多其他资源。我最终的目标是通过Azure Devops为整个旧版.NET网站项目设置CI。
答案 0 :(得分:0)
使用TFS-它在幕后使用MSBUILD,我们需要此参数写入目录以从中提取工件
/ p:OutDir = $(build.StagingDirectory)
您只告诉您有关“发布项目”部分的信息-查看将SLN文件放在第一个参数处是否可以解决该问题并完成所有操作。