gpt4 book ai didi

MSBuild 不部署并且不打印任何错误

转载 作者:行者123 更新时间:2023-12-01 13:27:07 25 4
gpt4 key购买 nike

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

"C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\MSBuild\15.0\Bin\MSBuild.exe" D:\HamrahFarda\KhandeShow\KhandeShow.sln /t:UserService /p:DeployOnBuild=true /p:PublishProfile=DeployUserService /p:SolutionDir=D:\HamrahFarda\KhandeShow /property:PublishFolder=C:\Publish\KhandeShow\UserService

完整的命令可以分解成这些部分:

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

"C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\MSBuild\15.0\Bin\MSBuild.exe"

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

D:\HamrahFarda\KhandeShow\KhandeShow.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:\Publish\KhandeShow\UserService</PublishDir>
</PropertyGroup>
</Project>

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

/p:SolutionDir=D:\HamrahFarda\KhandeShow /property:PublishFolder=C:\Publish\KhandeShow\UserService

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

最佳答案

根据您发布的日志,我能够确定以下内容:

您尝试通过网络发布方式发布的项目不是网络项目。

UserService.csproj 定义为

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

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

如果项目真的是web项目,应该改成

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

获得网络工具和发布支持。

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

关于MSBuild 不部署并且不打印任何错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47946252/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com