[英]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.