【问题标题】:Dynamically setting the IISUrl of a Web Application Project动态设置 Web 应用程序项目的 IISUrl
【发布时间】:2011-01-23 15:32:17
【问题描述】:

我有一个 Web 应用程序项目,我希望能够在完全独立的 IIS 站点上进行分支和开发,而不必在每次执行此操作时都继续编辑 vbproj IISUrl 设置。我已经尝试添加一些标准属性的导入,以便我可以在 WAP 文件之外维护它们,但是当我在元素中引用它们时它不喜欢它们。我怀疑这是因为 IISUrl 元素是放置非 msbuild 信息的地方的一部分。

正如您在下面的代码中看到的,我试图在 WebApp1.vbproj 的几个位置引用 $(CustomUrl),但是当我打开 VS 时,它并不喜欢它。

任何解决此问题的方法,或者是否有人有更好的方法来分支 Web 应用程序项目。

CustomImport.vbproj

<Project 
    xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
    <PropertyGroup>
        <CustomUrl>http://localhost/WebUrl_1</CustomUrl>
    </PropertyGroup>
</Project>

WebApp1.vbproj

<Import Project="CustomImport.vbproj"/>
<WebProjectProperties>
  <UseIIS>True</UseIIS>
  <AutoAssignPort>True</AutoAssignPort>
  <DevelopmentServerPort>1124</DevelopmentServerPort>
  <DevelopmentServerVPath>/</DevelopmentServerVPath>
  <IISUrl>$(CustomUrl)</IISUrl>
  <OverrideIISAppRootUrl>True</OverrideIISAppRootUrl>
  <IISAppRootUrl>$(CustomUrl)/</IISAppRootUrl>
  <NTLMAuthentication>False</NTLMAuthentication>
  <UseCustomServer>False</UseCustomServer>
  <CustomServerUrl>$(CustomUrl)</CustomServerUrl>
  <SaveServerSettingsInUserFile>False</SaveServerSettingsInUserFile>
</WebProjectProperties>

【问题讨论】:

  • 您有没有找到解决方案?我最近遇到了这个问题。我想在每个分支上都有一个单独的 IISURL,但是当我合并分支时,它会覆盖 IISURL,并且每次合并时我都必须手动更改它(除非我小心不要合并 vbproj 文件)
  • @Fake,不,我还没有找到解决方案。

标签: visual-studio visual-studio-2008 msbuild


【解决方案1】:

我相信我可能在 VS2010 中有一个解决方法。

在 VS2010 中右键单击项目,然后转到属性。在 Web 选项卡中,取消选中“将服务器设置应用于所有用户(存储在项目文件中)”。这样做是强制将所有设置存储在 [Web 项目名称].csproj.user 文件中,而不是项目文件本身中。 (我的是 C# 项目而不是 VB,但我认为它的工作原理相同)这允许您在每台进行开发的机器上拥有不同的服务器设置,但同时共享其余配置。

我必须这样做,因为我在每台开发机器(工作站和笔记本电脑)上都使用 SSL 证书,所以项目 URL 不同,但我不想手动弄乱每台机器上的 URL一次并在将我的代码检查到源代码管理时担心它。

在获取最新源后在计算机上完成初始配置后,您的 .user 文件将保存配置。只要您不将 .user 文件检查到源代码管理中,这似乎就可以正常工作。

【讨论】:

  • 这应该标记为正确答案,我也刚刚在 VS 2017 中对其进行了测试,以防万一有人遇到这个问题。
  • 是的,这也适用于未来版本的 VS。我同意你将其标记为正确答案,但你能做什么。 :)
  • 这不是解决方法,这是正确的解决方案 =)
【解决方案2】:

我已经被同样的问题困扰了好几年了。从 Visual Studio .NET (2003) 到现在 (VS 2010),问题一直存在。我已经搜索了自动 URL 重命名的自动化解决方案,但没有任何成功。

为了避免这个问题,我一直在做的是更多地分支并拥有许多不同的工作区:

正在进行的项目的根分支 -> 开发团队分支 -> 支持和长期代码完整性的分支(这是我最常用的分支) -> 我的个人自定义分支设置了不同的 URL

我知道这不是最好的解决方案,但这是我能想到的最好的解决方案。

【讨论】:

    【解决方案3】:

    这篇关于以编程方式更改项目文件的文章可能对您创建解决方案以自动更改这些设置有所帮助: Programmatically change Web project settings from dynamic port to static

    【讨论】:

      猜你喜欢
      • 2014-06-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-04-10
      • 1970-01-01
      • 2015-01-15
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多