C# 如何将数据硬编码到应用程序源代码中,以便易于用构建过程替换正则表达式

C# 如何将数据硬编码到应用程序源代码中,以便易于用构建过程替换正则表达式,c#,msbuild,data-objects,C#,Msbuild,Data Objects,我正在开发一个应用程序,该应用程序将通过自动构建/部署管道从源代码构建,这样每个注册客户都可以获得定制的二进制文件,其中包含硬编码的特定信息 构建过程将获取一个已知的.cs文件,并用构建环境设置中的可用数据替换默认值(基本上是占位符) 我想到的是一个类似于存储库的类,它实例化一个数据对象,并用regex(甚至更简单的字符串替换)很容易找到的值填充其属性。差不多 public static KeyInfoDbo GetEmbeddedData() { KeyInfoDbo = new KeyI

我正在开发一个应用程序,该应用程序将通过自动构建/部署管道从源代码构建,这样每个注册客户都可以获得定制的二进制文件,其中包含硬编码的特定信息

构建过程将获取一个已知的.cs文件,并用构建环境设置中的可用数据替换默认值(基本上是占位符)

我想到的是一个类似于存储库的类,它实例化一个数据对象,并用regex(甚至更简单的字符串替换)很容易找到的值填充其属性。差不多

public static KeyInfoDbo GetEmbeddedData() {
  KeyInfoDbo = new KeyInfoDbo {
      CompanyName = "[KeyInfo.CompanyName]";
  }
}

对于如何更有效或优雅地组织这些数据,是否有更好的方法?

是否有理由对数据进行硬编码?@MikeCheel,是的,有。特定于用户的版本对目标用户以外的用户没有任何用处,这使得不购买该软件(从而获得自己的定制版本)就无法使用该软件。看看这个:@garryp,这当然是个好主意!谢谢但是,我们可能必须维护一个相当长的源文件,其中包含条件..资源文件?包含二进制序列化对象的资源文件?此外,它不必被正则表达式替换。您可以放置占位符,如@@CompanyName@@@然后执行
替换(“@@@CompanyName@@@”,“Name 1”)