在Visual Studio(C#)的编译时设置值?

rob*_*trv 5 .net c# sharepoint silverlight-4.0

我目前正在使用C#并开发一些使用sharepoint Web服务作为数据源的Silverlight应用程序.

sharepoint管理员决定,为了"隔离"用户,他们必须多次创建相同的共享点列表,并授予每个分支用户访问该分支的相应列表的权限.

这会产生一些问题,因为我必须为每个分支设置sharepoint列表的guid,并编译同一个应用程序的5个不同版本.

最终我决定创建一个ListProperties类,并将当前分支的名称传递给方法,以便它返回正确的guid.

所以现在,我将变量(分支)设置为" BRANCH-A ",编译并将应用程序重命名为"AppBranchA.xap".然后对每个分支执行相同的操作.

有没有办法在编译时传递一个字符串并让变量(希望应用程序名称也自动更改)?

我愿意听到其他方法同时管理多个构建.

谢谢,

Jar*_*Par 2

解决此问题的一种方法是使用条件编译符号来控制GUID用于分支特定属性集的值。例如

class ListProperties {

#if BRANCH-A
  public static readonly GUID BranchGuid = "Guid #1";
#endif

#if BRANCH-B
  public static readonly GUID BranchGuid = "Guid #2";
#endif

}
Run Code Online (Sandbox Code Playgroud)

这允许您通过更改命令行上定义的预处理器符号来控制分支定义的值。

另一种选择是使用配置文件来存储分支特定数据。然后,您可以构建应用程序一次,并根据目标分支使用不同的配置文件进行部署。