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