我正在使用Web.config转换来成功创建我的web.config的调试和发布版本 - 这是正常的。
我很想知道是否有一个'machine name'属性来指定我可以在调试URL中使用的当前机器名,而不是硬编码特定的机器名(使用localhost不是一个选项)案例),例如
<add name="XrmService" connectionString="http://$(ComputerName):5555/Service.svc" />
使用Web.config转换是否有可用的属性?与MSBuild的$(ComputerName)
属性类似?
答案 0 :(得分:2)
我遇到了类似的问题,我最终做的是:
1)将以下构建目标添加到项目文件中。 (这是一个有效的MSBuild脚本)
<Target Name="AfterBuild">
<TransformXml Source="Web.config" Condition="Exists('Web.$(Computername).config') " Transform="Web.$(Computername).config" Destination="Web.config" />
</Target>
2)在项目中添加了Web.MyMachineName.config配置转换文件。在你的情况下,它应该是这样的:
<?xml version="1.0"?>
<configuration xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform">
<connectionStrings>
<add name="XrmService"
connectionString="http://MyMachineName:5555/Service.svc"
xdt:Transform="SetAttributes"
xdt:Locator="Match(name)"/>
</connectionStrings>
</configuration>
这样做的好处是可以根据计算机名运行不同的转换,而无需创建单独的构建配置。您可以通过指定Condition =“'$(Configuration)'=='Debug'”将其配置为仅调试。
答案 1 :(得分:0)
您可以使用环境变量。它是$(COMPUTERNAME)。
打开命令窗口,输入“set”(不带双引号),然后按Enter键。您将在屏幕顶部的某处看到此环境变量。