我尝试更新构建过程,以便代码对所有程序集和安装程序进行代码签名: 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=""$(SignPath)signcode.cmd" "%(AssembliesBuildByChildProjects.Fullpath)" /t"
WorkingDirectory="$(SignPath)" />
由于
答案 0 :(得分:0)
我找到了一个解决方案,不是很好 - 但可能是最糟糕的: - )
我只是签署了obj-Folder中的所有输出文件:
<ItemGroup>
<PrimaryOut
Include="@(AssembliesBuildByChildProjects->'..\**\obj\**\%(FileName).%(Extension)')" />
</ItemGroup>
<Exec
Command=""$(SignPath)signcode.cmd" "%(PrimaryOut.Fullpath)" /t"
WorkingDirectory="$(SignPath)" />
<Exec
Command=""$(SignPath)signcode.cmd" "%(AssembliesBuildByChildProjects.Fullpath)" /t"
WorkingDirectory="$(SignPath)" />