我希望有类似的东西:
let COMP_NAME = %some_type_of_flag%
因此,在编译时,这将更改为
let COMP_NAME = "MyComputerName"
编辑:我看到我的问题不完整。这是一个silverlight应用程序。看起来环境没有MachineName。我正在使用f#。
编辑:我正在使用Visual Studio 2010,后面的代码是f#(不要问)。我想这样做的原因是在我们的开发环境中,我们在本地机器上运行服务器。当有人签出代码时,他们必须在代码中输入他们的机器名称。当您在本地访问应用程序时使用“localhost”,显然从另一台计算机访问它时,这将无法正常工作。所以解决方案必须在构建时。
我不确定我使用的编译器是什么,无论VS2010中的默认f#编译器是什么。
答案 0 :(得分:3)
我不知道如何做到比以下更简单。您想要设置预建步骤(项目 - >属性 - >构建事件 - >预构建事件命令行)。
在这里,您可以设置一个程序,该程序将通过源文件进行尖叫,并使用值%MachineName%
替换某些特定标记(Environment.MachineName
)。这是一个你必须单独写的程序。
答案 1 :(得分:-1)
让COMP_NAME = Environment.MachineName
答案 2 :(得分:-1)
我找到了我正在寻找的解决方案,并且它没有在编译时获得计算机名称,而是在运行时获取源主机。
let host = Application.Current.Host.Source.Host
let uri = new Uri("https://" + host)