[英]How can I find out the name of my VS2010 solution / Application from inside my C# program
我知道这是一个奇怪的请求,但我有在不同解决方案之间共享的代码。 当我运行代码时,我希望它的行为“略有”不同。
有没有办法可以检查正在执行的 bin/application/solution 是什么?
希望有人有一些好的想法。
谢谢,
曼迪·威尔逊(FPL 西棕榈滩)
您可以调用Assembly.GetEntryAssembly()
来查找用户启动的Assembly
实例。
然后您可以检查它的AssemblyName
或Location
。
不确定您对解决方案名称的实际问题,但您不能在每个解决方案的配置文件中放置一个不同的标记,并基于此进行逻辑切换吗? 说:
<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.