Azure DevOps - 针对特定项目的 VSBuild 发布不起作用
Azure DevOps - VSBuild for a specific project with publish not working
我有一个包含大约 63 个奇怪项目的解决方案,但我的主要目标是大约 6 个项目。其中 3 个是 DotNet 核心 API 和 3 个 Web 应用程序。我能够使用 DotNetCoreCLI@2
任务发布我的 DotNet 核心 API。不幸的是,当我尝试发布我的 Web 应用程序时,我遇到了以下错误:
错误信息
MSBUILD : error MSB1006: Property is not valid. Switch:
OutputPath:**\WebApplicationMain\Publish
YAML
- task: VSBuild@1
inputs:
solution: '**\WebApplicationMain\MainWebApplication.csproj'
msbuildArgs: '/t:build /p:DeployOnBuild=true /p:PublishProfile=publish.pubxml /p:OutputPath:"**\WebApplicationMain\Publish"'
platform: '$(buildPlatform)'
configuration: '$(buildConfiguration)'
这是我的 publish.pubxml
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<WebPublishMethod>FileSystem</WebPublishMethod>
<PublishProvider>FileSystem</PublishProvider>
<LastUsedBuildConfiguration>Staging</LastUsedBuildConfiguration>
<LastUsedPlatform>Any CPU</LastUsedPlatform>
<SiteUrlToLaunchAfterPublish />
<LaunchSiteAfterPublish>False</LaunchSiteAfterPublish>
<ExcludeApp_Data>False</ExcludeApp_Data>
<publishUrl>Publish</publishUrl>
<DeleteExistingFiles>True</DeleteExistingFiles>
<TargetFramework>net472</TargetFramework>
</PropertyGroup>
</Project>
我在这里错过了什么?有什么建议吗?
您在 /p:OutputPath:
中使用 :
而不是 =
,因此只需将其修复为:
/p:OutputPath="some/path"
不确定这是否是正确答案,但它对我有用。我删除了变量 $(build.artifactstagingdirectory) 并将其替换为不同的目录名称。我用了“舞台”。我怀疑构建代理不喜欢该特定项目的该变量中包含的值。
我有一个包含大约 63 个奇怪项目的解决方案,但我的主要目标是大约 6 个项目。其中 3 个是 DotNet 核心 API 和 3 个 Web 应用程序。我能够使用 DotNetCoreCLI@2
任务发布我的 DotNet 核心 API。不幸的是,当我尝试发布我的 Web 应用程序时,我遇到了以下错误:
错误信息
MSBUILD : error MSB1006: Property is not valid. Switch: OutputPath:**\WebApplicationMain\Publish
YAML
- task: VSBuild@1
inputs:
solution: '**\WebApplicationMain\MainWebApplication.csproj'
msbuildArgs: '/t:build /p:DeployOnBuild=true /p:PublishProfile=publish.pubxml /p:OutputPath:"**\WebApplicationMain\Publish"'
platform: '$(buildPlatform)'
configuration: '$(buildConfiguration)'
这是我的 publish.pubxml
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<WebPublishMethod>FileSystem</WebPublishMethod>
<PublishProvider>FileSystem</PublishProvider>
<LastUsedBuildConfiguration>Staging</LastUsedBuildConfiguration>
<LastUsedPlatform>Any CPU</LastUsedPlatform>
<SiteUrlToLaunchAfterPublish />
<LaunchSiteAfterPublish>False</LaunchSiteAfterPublish>
<ExcludeApp_Data>False</ExcludeApp_Data>
<publishUrl>Publish</publishUrl>
<DeleteExistingFiles>True</DeleteExistingFiles>
<TargetFramework>net472</TargetFramework>
</PropertyGroup>
</Project>
我在这里错过了什么?有什么建议吗?
您在 /p:OutputPath:
中使用 :
而不是 =
,因此只需将其修复为:
/p:OutputPath="some/path"
不确定这是否是正确答案,但它对我有用。我删除了变量 $(build.artifactstagingdirectory) 并将其替换为不同的目录名称。我用了“舞台”。我怀疑构建代理不喜欢该特定项目的该变量中包含的值。