问题 动态设置Web应用程序项目的IISUrl


我有一个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>

3733
2018-03-04 11:36


起源

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


答案:


我相信我可能会在VS2010中找到解决方法。

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

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

获取最新源后,在计算机上完成初始配置后,.user文件将保留配置。只要你没有将.user文件检查到源代码控制中,这似乎工作正常。


11
2017-11-05 17:26



这应该被标记为正确的答案,我也刚刚在VS 2017中测试过,以防有人很快遇到这个问题。 - SM3RKY
是的,这也适用于VS的未来版本。我同意你的看法,认为这是正确的答案,但你能做些什么。 :) - Mike Taber
这不是一种解决方法,这是正确的解决方案=) - Edwin Stoteler


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

我一直在做的是避免这个问题,分支的方式更多,并有很多不同的工作区:

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

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


0
2018-01-21 13:18





有关以编程方式更改项目文件的这篇文章可能对您创建解决方案以自动更改这些设置有一些用处: 以编程方式将Web项目设置从动态端口更改为静态


0
2018-03-17 18:42