MSBuild不会部署并且不会打印错误

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MSBuild不会部署并且不会打印错误相关的知识,希望对你有一定的参考价值。

我正在尝试使用MSBuild发布我的项目。这是命令:

"C:Program Files (x86)Microsoft Visual Studio2017CommunityMSBuild15.0BinMSBuild.exe" D:HamrahFardaKhandeShowKhandeShow.sln /t:UserService /p:DeployOnBuild=true /p:PublishProfile=DeployUserService /p:SolutionDir=D:HamrahFardaKhandeShow /property:PublishFolder=C:PublishKhandeShowUserService

完整的命令可以分解为以下部分:

我使用随VS 2017社区版安装的用于.NET Core的MSBuild.exe。

"C:Program Files (x86)Microsoft Visual Studio2017CommunityMSBuild15.0BinMSBuild.exe"

我有一个解决方案,我只想在其中构建和发布一个项目。从而:

D:HamrahFardaKhandeShowKhandeShow.sln /t:UserService

我希望它部署构建的项目:

/p:DeployOnBuild=true 

我事先创建了一个发布配置文件:

/p:PublishProfile=DeployUserService

这是发布配置文件:

<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
  <PropertyGroup>
    <PublishProtocol>FileSystem</PublishProtocol>
    <Configuration>Release</Configuration>
    <TargetFramework>netcoreapp2.0</TargetFramework>
    <PublishDir>C:PublishKhandeShowUserService</PublishDir>
  </PropertyGroup>
</Project>

最后但并非最不重要的是,我重写了一些属性,并提供了在.csproj中使用的新属性:

/p:SolutionDir=D:HamrahFardaKhandeShow /property:PublishFolder=C:PublishKhandeShowUserService

但没有任何错误(带有一堆警告)它不会向目标文件夹发布任何内容。我被卡住了。你能帮忙吗,因为MSBuild真的不方便和友好。

答案

从您发布的日志中我可以确定以下内容:

您尝试通过Web发布方法发布的项目不是Web项目。

UserService.csproj定义为

<Project Sdk="Microsoft.NET.Sdk">

这是一个“正常”的sdk风格的.NET项目。如果要执行这些项目的文件系统发布,请使用dotnet publish或其msbuld等效的msbuild /t:Publish

如果项目确实是一个Web项目,您应该将其更改为

<Project Sdk="Microsoft.NET.Sdk.Web">

获得Web工具和发布支持。

更新:还请注意,发布配置文件中的PublishDir不是在发布配置文件中设置的正确变量。请改用PublishUrl,以便FileSystem发布方法将文件复制到正确的目录。

以上是关于MSBuild不会部署并且不会打印错误的主要内容,如果未能解决你的问题,请参考以下文章

片段项目不会折叠

我该如何做模态对话框片段(代码在我关闭之前不会执行)

Android 应用程序不会启动,也不会列出错误/警告。使用片段和问题似乎与 var args = ViewFragmentArgs

MSBuild 不会为 Web 服务项目创建包?

使用 Dumper 不会触发失败

用MSBuild和Jenkins搭建持续集成环境