如何在C#程序中找到我的VS2010解决方案/应用程序的名称

时间:2011-05-01 13:28:07

标签: c# visual-studio-2010

我知道这是一个奇怪的请求,但我有不同解决方案之间共享的代码。当我运行代码时,我希望它“略微”不同。

有没有办法可以检查正在执行的bin / application / solution?

希望有人有一些好主意。

谢谢,

Mandy Wilson(FPL西棕榈滩)

5 个答案:

答案 0 :(得分:2)

您可以致电Assembly.GetEntryAssembly()查找用户启动的Assembly个实例 然后,您可以查看其AssemblyNameLocation

答案 1 :(得分:2)

不确定您对解决方案名称的实际问题,但是您不能只在每个解决方案的Config文件中放置一个不同的标记,并根据该逻辑开关进行逻辑切换吗?说:

<appSettings>
  <add key="AppType" value="SomeType1" />
</appSettings>

然后在共享代码中读取该设置,并根据该密钥的实际值使其行为不同。

答案 2 :(得分:1)

我建议使用设置并在部署时明确配置行为。

关键字是App Config和System.Configuration命名空间。

应用程序设置:

<appSettings>
     <add key="AppType" value="SomeType" />
</appSettings>

获取值:

var appType = System.Configuration.ConfigurationManager.AppSettings["AppType"]

答案 3 :(得分:1)

我认为,使用执行程序中的元信息并不是最好的方法。一般来说,我会采用以下两种方式之一。首先,使用配置文件。在配置文件中存储每个解决方案的不同信息,并使用配置文件设置来驱动程序行为。如果您不愿意允许用户通过配置文件更改程序行为,那么我将使用插件架构并通过插件提供配置。您的公共代码将取决于插件接口,并且在每个解决方案中,您只需构建包含相应配置信息的插件的不同版本。

答案 4 :(得分:0)

如果我了解您尝试检查每个应用程序的ProductName。

if (Application.ProductName == "App1")
{
    // Action
}
else if (Application.ProductName == "App2")
{
    // Other Actions
}

我希望我明白你想做什么。