簡體   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