以编程方式修改csproj文件

时间:2011-10-25 09:55:12

标签: xml visual-studio-2010 projects-and-solutions linq-to-xml csproj

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

最简单的方法是在Visual Studio 2010 中打开EnterpriseLibrary.2010解决方案文件,然后为每个项目选择属性 - >签名并选择签署程序集,然后选择您的密钥文件。

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

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

C#中的任何帮助类或脚本编写如果更好的方法是否容易和快速?

1 个答案:

答案 0 :(得分: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个)进行了一系列更改,而不是手动打开每个项目并进行更改。

希望这有帮助。