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

相关问题