将自定义信息添加到CSPROJ文件

作为我们开发生命周期的一部分,我们在项目中针对C#源运行了许多过程。

这些进程由GUI驱动,该GUI当前读取* .csproj文件以查找项目中使用的源文件。 这很好用。

我们现在有一个新要求,即提供一些需要调用Web服务的validation过程。 需要为Web服务提供一些特定于项目的凭据。 理想情况下,我们可以在* .csproj文件中输入和存储这些凭据,但我没有看到扩展它的方法 – 是吗?

我们真的不想引入新的配置。 如果我们可以帮助它,只为这些设置提供文件。 是否有可能存储这样的信息是* .csproj文件,如果没有其他地方可以放置它。

谢谢

.csproj文件基本上是一个MSBuild文件 ,因此您可以使用自定义值对其进行扩展。 如果右键单击Visual Studio中的项目并选择“卸载项目”,项目将“灰显”,然后您可以再次右键单击并选择Edit [ProjectFileName].csproj 。 然后,您可以添加类似于以下内容的内容:

  1  

在修改项目(即添加/删除文件) 时应保留此项,并且可以使用您选择的方法从文件中检索值。

VS项目支持“项目扩展”。 这些是直接存储在csproj / vbproj文件中的自定义数据。 您甚至可以从VS中轻松读取和写入它们。 例如,以下VS宏写入此类自定义设置:

 Dim proj As Project = DirectCast(DTE.ActiveSolutionProjects(0), Project) proj.Globals.VariableValue("MySettingName1") = "My value1" proj.Globals.VariablePersists("MySettingName1") = True 

以下内容如下:

 proj.Globals.VariableValue("MySettingName1").ToString 

并且csproj文件中的代码如下所示:

       

当然,这是持久的,不会被VS覆盖。

我知道你解雇了它,但最明显的,也许是推荐的地方是在配置文件中。 虽然加密了。

每个项目一个配置文件适用于大多数情况,并不是一个大的开销imho。