以编程方式修改.csproj文件

问题描述 投票:7回答:1

我有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#或脚本编写的任何帮助程序类都更简单,更快捷,那么更好吗?

xml visual-studio-2010 projects-and-solutions linq-to-xml csproj
1个回答
21
投票

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

示例代码:

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

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

希望这会有所帮助。

© www.soinside.com 2019 - 2024. All rights reserved.