BEN*_*der 9 c# projects-and-solutions csproj visual-studio
作为我们开发生命周期的一部分,我们在项目中针对C#源运行了许多过程.
这些进程由GUI驱动,该GUI当前读取*.csproj文件以查找项目中使用的源文件.这很好用.
我们现在有了一个新的要求,即提供一些需要调用Web服务的验证过程.需要为Web服务提供一些特定于项目的凭据.理想情况下,我们可以在*.csproj文件中输入和存储这些凭据,但我没有看到扩展它的方法 - 是吗?
我们真的不想引入新的配置.如果我们可以帮助它,只为这些设置提供文件.是否可以存储这样的信息是*.csproj文件,如果没有其他地方可以放置它.
谢谢
Rob*_*Rob 12
该.csproj文件基本上是一个MSBuild文件,因此您可以使用自定义值对其进行扩展.如果右键单击Visual Studio中的项目并选择"卸载项目",项目将"灰显",然后您可以再次右键单击并选择Edit [ProjectFileName].csproj.然后,您可以添加类似于以下内容的内容:
<PropertyGroup Label="Custom">
<Badger>1</Badger>
</PropertyGroup>
Run Code Online (Sandbox Code Playgroud)
这应该当项目被修改被持久化(即文件添加/删除),你可以从该文件使用您选择的方法来获取值.
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
Run Code Online (Sandbox Code Playgroud)
下面将其读回:
proj.Globals.VariableValue("MySettingName1").ToString
Run Code Online (Sandbox Code Playgroud)
csproj 文件中的代码如下所示:
<ProjectExtensions>
<VisualStudio>
<UserProperties MySettingName1="My value1" />
</VisualStudio>
</ProjectExtensions>
Run Code Online (Sandbox Code Playgroud)
当然,这是持久化的,不会被VS覆盖。
| 归档时间: |
|
| 查看次数: |
5638 次 |
| 最近记录: |