创建安装程序之前的代码标记程序集

时间:2010-09-16 08:04:40

标签: msbuild

我尝试更新构建过程,以便代码对所有程序集和安装程序进行代码签名: 1)建立所有项目 2)签署他们的输出 3)构建安装程序(msi,使用VS2010安装项目) 4)签署安装程序

我遇到的问题是,在第3步中,Installer-Project将主输出从obj文件夹中取出。但是在第2步中,我获取了MSBuild-Task的输出,它们位于bin文件夹中。所以我的msi中有一个未签名的主输出。

MSBuild-call:

<MSBuild Projects="%(SolutionFiles.FullPath)" ContinueOnError ="false" Properties="Configuration=$(BuildConfiguration)" Targets="Build">
        <Output TaskParameter="TargetOutputs" ItemName="AssembliesBuildByChildProjects"/>
    </MSBuild>

签名适用于cmd-File:

<Exec 
        Command="&quot;$(SignPath)signcode.cmd&quot;  &quot;%(AssembliesBuildByChildProjects.Fullpath)&quot; /t"
        WorkingDirectory="$(SignPath)" />

由于

1 个答案:

答案 0 :(得分:0)

我找到了一个解决方案,不是很好 - 但可能是最糟糕的: - )

我只是签署了obj-Folder中的所有输出文件:

<ItemGroup>
        <PrimaryOut 
            Include="@(AssembliesBuildByChildProjects->'..\**\obj\**\%(FileName).%(Extension)')" />
    </ItemGroup>

    <Exec
        Command="&quot;$(SignPath)signcode.cmd&quot;  &quot;%(PrimaryOut.Fullpath)&quot; /t"
        WorkingDirectory="$(SignPath)" />
    <Exec 
        Command="&quot;$(SignPath)signcode.cmd&quot;  &quot;%(AssembliesBuildByChildProjects.Fullpath)&quot; /t"
        WorkingDirectory="$(SignPath)" />