【发布时间】:2019-08-12 19:23:13
【问题描述】:
我需要将 .NET 网站项目发布到本地目录。该网站项目是解决方案的一部分,该解决方案还包含一个 Web 应用程序。 Visual Studio 中的 Publish Web App 选项将网站发布到目录中没有问题,但是我无法通过 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。
【问题讨论】:
-
你在哪里运行 msbuild?我的意思是,您是使用 vs2015 的开发人员命令提示符还是使用 v4.0.30319 文件夹下的“cmd+msbuild.exe”?因为我已经用 leo 的答案进行了测试,并且该命令在我的 VS2015 网站上运行良好。
-
您好朋友,当您提到“通过 msbuild 发布站点”时,您的意思是在没有 TFS 的情况下在本地使用 msbuild 工具时出现问题。
-
嗨兰斯。我从
C:\Windows\Microsoft.NET\Framework\v4.0.30319在本地运行 msbuild。当我使用 Leo 的命令时,命令完成,但它不会发布到我的 dev.pubxml 发布配置文件中列出的目录。它似乎改为发布到ProjectName\PrecompiledWeb\localhost_51636。 -
嗨,朋友,尝试打开 vs2015 的开发者 coomand compt,然后在此处输入命令。我已经看到 v4.0.30319 文件夹下的 msbuild.exe 存在许多问题。请尝试 C:\Program Files (x86)\MSBuild\14.0\Bin\MSBuild.exe。(这个版本更适合你)
-
为了利奥的命令。我们都使用开发者命令提示符运行命令,都成功了。 (而不是v4.0.30319,我认为它不是vs2015的最新版本)
标签: asp.net visual-studio build msbuild