【发布时间】:2010-09-23 00:43:54
【问题描述】:
我正在使用 Visual Studio 2008,我想通过运行批处理文件来自动化构建安装程序的过程。
批处理文件应首先对程序集进行签名,然后开始构建安装程序。创建安装程序后,批处理文件也应签署.msi 文件。
这可能吗?
【问题讨论】:
标签: visual-studio visual-studio-2008
我正在使用 Visual Studio 2008,我想通过运行批处理文件来自动化构建安装程序的过程。
批处理文件应首先对程序集进行签名,然后开始构建安装程序。创建安装程序后,批处理文件也应签署.msi 文件。
这可能吗?
【问题讨论】:
标签: visual-studio visual-studio-2008
如果您想自动化整个构建过程,从从版本控制中提取代码开始,您可能会发现这篇文章很有用。
Automated Extract and Build from Team System using PowerShell
【讨论】:
是的,它可以从批处理文件中完成。要对程序集进行签名,您需要从 Microsoft Platform SDK 获取 signtool.exe 的副本。内置帮助将为您提供有关如何使用该工具的良好概述。下一个 Visual Studio 2008 采用 command line parameters,但您必须确保在尝试从命令行运行 devenv.exe 之前调用适当的 vcvars32.bat 脚本。最后,您可以使用signtool.exe 对您的 MSI 文件进行签名。
【讨论】:
MSBUILD 就是您所需要的。 Msbild 使用 xml 格式的 .proj 和 .target 文件。 Here 你可以找到微软的文档。我警告你这并不容易,但我强烈建议你花一些时间在这上面。你花在它上面的每一秒都会返回给你,乘以 100。 我们将它用于部分构建和部分构建,它可以完成所有工作:代码构建、数据库设置、配置文件、单元测试执行。
【讨论】:
正如 enba 所提到的,您所需要的只是 msbuild。如果您使用WiX 来生成您的 msi,则尤其如此,这意味着您可以只调用您的 WiX 解决方案文件。您只需要设置一个如下所示的 build.xml:
<Project>
<Target Name="Install">
<Exec Command="signcode.exe -spc mycert.cer -v mykey.pvk myproj\release\myassy.dll"/>
<MSBuild Projects="WixInstall.sln" Properties="Configuration=Release"/>
</Target>
</Project>
假设 signcode.exe 在您的路径中,您所要做的就是“msbuild build.xml”。
【讨论】:
FinalBuilder 对此有一些支持。
【讨论】: