9

我有 Entlib 5.0 的源代码,我需要使用我自己的密钥(snk 文件)对所有程序集进行签名。

最简单的方法是在 Visual Studio 2010中打开 EnterpriseLibrary.2010 解决方案文件,对于每个项目,选择Properties->Signing ,然后选择Sign the Assembly,最后选择您的密钥文件。

但我不想手动执行此操作,然后我可以编写一个脚本来手动编辑项目文件并在当前列表的末尾插入以下内容PropertyGroups

<PropertyGroup>
    <SignAssembly>true</SignAssembly>
</PropertyGroup>
<PropertyGroup>
    <AssemblyOriginatorKeyFile>keyFile.snk</AssemblyOriginatorKeyFile>
</PropertyGroup>

C# 或脚本中的任何帮助程序类是否更适合轻松快捷地完成?

4

1 回答 1

23

您可以查看 Microsoft.Build.BuildEngine 命名空间MSDN 链接

示例代码:

Engine eng = new Engine()
Project proj = new Project(eng);
proj.Load(FullProjectPath);
proj.SetProperty("SignAssembly", "true");
proj.Save(FullProjectPath);

我最近使用类似的东西对我公司的所有 .csproj 文件(超过 200 个)进行了一系列更改,而不是手动打开每个项目并进行更改。

希望这可以帮助。

于 2011-12-13T16:26:21.197 回答