2010-11-12 75 views
2

我想有這樣的:使用Visual Studio,我可以在編譯時獲得計算機名稱嗎?

let COMP_NAME = %some_type_of_flag% 

所以在編譯時,這是改變

let COMP_NAME = "MyComputerName" 

編輯:我看到我的問題是不完整的。這是一個silverlight應用程序。它似乎環境沒有MachineName。我正在使用f#。

編輯:我使用Visual Studio 2010和後面的代碼是在F#(不要問)。我想這樣做的原因是,在我們的開發環境中,我們在本地機器上運行服務器。當某人簽出代碼時,他們必須在代碼中輸入他們的機器名稱。當你在本地訪問應用程序時使用「localhost」,當從另一臺機器訪問應用程序時顯然不起作用。所以解決方案必須在構建時間。

我不知道,我使用的是什麼編譯器,無論默認的F#編譯器是在VS2010。

+1

在什麼lanugage? – SLaks 2010-11-12 16:38:41

+1

此外,爲什麼?你想達到什麼目的? – Stu 2010-11-12 16:43:12

+0

聽起來像一個預構建步驟的情況下做一些包括的代碼文件。 – sisve 2010-11-12 16:58:43

回答

-1

讓COMP_NAME = Environment.MachineName

+1

這是運行時間,它可能與構建時的機器不同。 – jason 2010-11-12 19:33:14

3

我不知道的方式做到這一點比下面簡單。您想設置一個預構建步驟(項目 - >屬性 - >生成事件 - >預生成事件命令行)。

在這裏,您可以設置一個程序,該程序將通過源文件尖叫,並用Environment.MachineName的值替換某個特定的令牌(%MachineName%)。這是一個你必須單獨編寫的程序。

-1

我發現我正在尋找解決方案,並且它不是在編譯時獲取計算機的名稱,它在運行時獲得的源主機。

let host = Application.Current.Host.Source.Host 
let uri = new Uri("https://" + host) 
+0

這可能是解決您的問題的方法,但這不是您的問題的答案。這給你的機器託管你的(silverlight)應用程序,而不是它編譯的。 – mbx 2013-06-25 15:13:20

相關問題