命令行MSBuild不排除调试库

命令行MSBuild不排除调试库,msbuild,uwp,azure-devops,windows-store,Msbuild,Uwp,Azure Devops,Windows Store,因此,我构建了一个UWP应用程序,我通过Visual Studio构建了一个.appxupload包,并将其提交到商店,商店已经接受了它 我现在正尝试使用VisualStudioOnline来自动化我的构建过程 我正在用我定义的名为AppStore的新配置构建我的项目,该配置如下所示: <PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'AppStore|AnyCPU'"> <OutputPath

因此,我构建了一个UWP应用程序,我通过Visual Studio构建了一个
.appxupload
包,并将其提交到商店,商店已经接受了它

我现在正尝试使用VisualStudioOnline来自动化我的构建过程

我正在用我定义的名为AppStore的新配置构建我的项目,该配置如下所示:

  <PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'AppStore|AnyCPU'">
    <OutputPath>bin\AppStore\</OutputPath>
    <DefineConstants>TRACE</DefineConstants>
    <Optimize>true</Optimize>
    <DebugType>pdbonly</DebugType>
    <PlatformTarget>AnyCPU</PlatformTarget>
    <ErrorReport>prompt</ErrorReport>
    <CodeAnalysisRuleSet>MinimumRecommendedRules.ruleset</CodeAnalysisRuleSet>
  </PropertyGroup>
然后根据请求创建了我的
.appxupload
包,这非常棒。。但是当我上传到商店时,我得到以下信息:

  <PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'AppStore|AnyCPU'">
    <OutputPath>bin\AppStore\</OutputPath>
    <DefineConstants>TRACE</DefineConstants>
    <Optimize>true</Optimize>
    <DebugType>pdbonly</DebugType>
    <PlatformTarget>AnyCPU</PlatformTarget>
    <ErrorReport>prompt</ErrorReport>
    <CodeAnalysisRuleSet>MinimumRecommendedRules.ruleset</CodeAnalysisRuleSet>
  </PropertyGroup>
调试配置

发现错误:调试配置测试检测到以下错误:

二进制文件MyApp.Logging.dll是在调试模式下构建的

二进制MyApp.Reports.dll是在调试模式下构建的

二进制MyApp.DataAccess.dll是在调试模式下构建的

二进制文件MyApp.Business.dll是在调试模式下构建的

二进制MyApp.Core.dll是在调试模式下构建的

我的MsBuild参数是否不正确

更新

这是MSBuild正在运行的命令:

"C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\MSBuild\15.0\Bin\msbuild.exe" "C:\agent\_work\1\s\MyApp\MyApp\MyApp.UWP\MyApp.UWP.csproj" /nologo /nr:false /t:"Clean" /dl:CentralLogger,"C:\agent\_work\_tasks\VSBuild_71a9a2d3-a98a-4caa-96ab-affca411ecda\1.118.0\ps_modules\MSBuildHelpers\Microsoft.TeamFoundation.DistributedTask.MSBuild.Logger.dll";"RootDetailId=ebe5f0fb-1da0-4f6b-aa54-d80c73ac3060|SolutionDir=C:\agent\_work\1\s\MyApp\MyApp\MyApp.UWP"*ForwardingLogger,"C:\agent\_work\_tasks\VSBuild_71a9a2d3-a98a-4caa-96ab-affca411ecda\1.118.0\ps_modules\MSBuildHelpers\Microsoft.TeamFoundation.DistributedTask.MSBuild.Logger.dll" /p:Configuration=AppStore;AppxBundle=Always;AppxBundlePlatforms="x86|x64|ARM";AppxPackageDir="C:\agent\_work\1\b\AppxPackages\\";UapAppxPackageBuildMode=StoreUpload /p:configuration="AppStore" /p:VisualStudioVersion="15.0" /p:_MSDeployUserAgent="VSTS_7c0e42bd-65b9-486e-9338-1c87ca14bb55_build_3_1182"

它似乎在发布模式下生成x86,在调试模式下生成x64和ARM,这就是我的应用无法通过Windows认证检查的原因。请参阅以下步骤以更改配置:

  • 在VS>Configuration Manager中右键单击解决方案文件
  • 选择应用商店配置
  • 更改MyApp.Logging、MyApp.Reports、MyApp.DataAccess…(例如发布)的配置

  • 您已经定义了
    跟踪
    符号。这是故意的吗?不是故意的。只保留了默认配置。这会迫使它构建为调试吗?因为诊断消息中的一个库指示“MyApp.Logging.dll”是在调试模式下构建的,并且
    跟踪
    符号控制日志记录,如果这是问题的一部分,我不会感到惊讶。我会把它拿走。毕竟,跟踪函数调用不是发布配置应该做的事情。如果我创建了一个全新的UWP项目,该选项被勾选为
    release
    模式。可能是default@MartinUllrich:调试符号的生成不会更改代码生成。调试符号被编译成单独的.pdb文件。此外,您确实希望为发行版配置生成调试符号。如果您使用
    MsBuild命令行
    生成发行版以外的任何版本创建调试
    .appxupload
    文件,则认为这实际上是在生成。从VS和为同一配置(mycustomconfiguration)创建
    .appxupload
    会产生不同的结果。VS通过应用程序认证,MSBuilddoesnt@user1您使用了哪个构建任务?尝试添加/t:[UWP project name]参数并直接构建解决方案。(/t:[UWP项目名称]/p:Configuration=AppStore;AppxBundle=Always;AppxBundlePlatforms=“x86 | x64 | ARM”;AppxPackageDir=“$(Build.BinariesDirectory)\AppxPackages\\”;UAPAPPXPPackageBuildMode=StoreUploadI将尝试上述操作。我正在使用MSBuild任务。我已将正在运行的命令添加到我的问题中。我尝试了上述操作,但在目标“C:\agent\\u work\1\s\MyApp\MyApp\MyApp\MyApp.UWP\MyApp.UWP.csproj”中出现错误
    项目中不存在。
    @user1您可以改用Visual Studio生成任务。您的项目名称为MyApp.UWP,因此请改用/t:MyApp\u UWP。如果项目位于其他文件夹中,请使用/t:[文件夹]/MyApp\u UWP。