问题描述
我有一个解决方案,其中包含大约63个奇数项目,但是我的主要目标是大约6个项目。其中3个是DotNet Core API和3个Web应用程序。我可以使用DotNetCoreCLI@2
任务发布DotNet Core API。不幸的是,当我尝试发布Web应用程序时,遇到以下错误:
错误消息
MSBUILD:错误MSB1006:属性无效。开关: 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) 并将其替换为不同的目录名称。我用了“舞台”。我怀疑构建代理不喜欢该特定项目的变量中包含的值。