定制项目构建

Customization project build

我正在尝试在构建自定义项目后获取托管解决方案。但是在默认的 .target 文件中,不要在托管解决方案部分指定 SolutionPackager 的“/packagetype”参数:

    <!-- Unmanaged solution -->
    <Exec Condition="'$(SolutionType)' == '0' or '$(SolutionType)' == '2'"
        Command="REM SET AssemblyVersionDefinitionFile=$(AssemblyVersionDefinitionFile)
          REM SET AssemblyVersionName=$(AssemblyVersionName)
          &quot;$(SolutionPackagerDir)\SolutionPackager.exe&quot; -a:pack -z:&quot;$(OutDir)$(TargetName).zip&quot; -f:&quot;$(IntermediateOutputPath)$(BeforeLocDir)&quot;" />

    <!-- Managed solution -->
    <Exec Condition="'$(SolutionType)' == '0' or '$(SolutionType)' == '2'"
   Command="REM SET AssemblyVersionDefinitionFile=$(AssemblyVersionDefinitionFile)
          REM SET AssemblyVersionName=$(AssemblyVersionName)
          &quot;$(SolutionPackagerDir)\SolutionPackager.exe&quot; -a:pack -z:&quot;$(OutDir)$(TargetName)_managed.zip&quot; -f:&quot;$(IntermediateOutputPath)$(BeforeLocDir)&quot; -p:Managed" />

我所有指定“/packagetype”参数(如“/p:Managed”或“-p:Managed”)的尝试均未成功。我做错了什么?

更新

输出是:

1>  Solution package type did not match requested type.
1>  Command line argument: Unmanaged
1>  Package type: Managed

在哪里可以更改命令行参数?

您无法在构建项目后获得托管解决方案,因为您在自定义项目中导出了非托管解决方案。关于 XML 的差异阅读 here

至于“/packagetype”——这个参数是可选的。您可以省略此参数,因为可以从 .zip 文件或组件文件中读取包类型。有关解决方案打包程序的更多信息 here