我正在开发一个使用Microsoft.Build命名空间的工具,以编程方式构建一个C#项目等。可以通过Visual Studio创建项目,也可以使用代码模板的参数替换生成项目。
我需要验证给定项目是否有效。我遇到了this question,其中包含有效项目名称的规则,但我认为该列表不完整。
例如 - 根据C#CLS - 标识符不能在项目名称中使用,除非它以@
为前缀。提到here。另一个例子是,如果输入项目名称是数字,则Visual Studio会在其前面添加下划线。
所以,问题是 - 是否有一个命名空间/ api /花哨的正则表达式,我可以用它来编程,在Visual Studio之外以编程方式创建一个新的C#项目,它将应用C#CLS指定的所有这些规则?