繁体   English   中英

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

[英]How can I find out the name of my VS2010 solution / Application from inside my C# program

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

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

希望有人有一些好的想法。

谢谢,

曼迪·威尔逊(FPL 西棕榈滩)

您可以调用Assembly.GetEntryAssembly()来查找用户启动的Assembly实例。
然后您可以检查它的AssemblyNameLocation

不确定您对解决方案名称的实际问题,但您不能在每个解决方案的配置文件中放置一个不同的标记,并基于此进行逻辑切换吗? 说:

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

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

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

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

应用程序设置:

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

获取值:

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

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

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM