Динамическая настройка IISUrl проекта веб-приложения

У меня есть проект веб-приложений, который я хотел бы иметь возможность развёртывать и разрабатывать на совершенно другом сайте IIS, и не нужно постоянно редактировать настройки vbproj IISUrl каждый раз, когда я это делаю. Я попытался добавить импорт некоторых стандартных свойств, поэтому я могу поддерживать их вне WAP файла, но когда я ссылаюсь на них в элементе, который им не нравится. Я подозреваю это, потому что элемент IISUrl является частью которого является местом для размещения информации без msbuild.

Как вы можете видеть в приведенном ниже коде, я пытаюсь ссылаться на $(CustomUrl) в пару пятен в WebApp1.vbproj, но когда я открываю VS, это не нравится.

Любой способ решить эту проблему или у кого-то есть лучший способ отделить проекты веб-приложений.

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>

Ответ 1

Я полагаю, что у меня может быть обходное решение для этого в VS2010.

Щелкните правой кнопкой мыши по проекту в VS2010 и выберите "Свойства". На вкладке "Интернет" снимите флажок "Применить настройки сервера всем пользователям (сохранить в файле проекта)". Это означает, что все настройки сохраняются в файле [Веб-проект].csproj.user, а не в самом файле проекта. (Mine - это проект С# вместо VB, но я предполагаю, что он работает одинаково) Это позволяет вам иметь разные настройки сервера на каждой машине, выполняющей разработку, но в то же время делиться остальной конфигурацией.

Я должен был это сделать, потому что я использую SSL-сертификаты на каждой машине разработки (рабочей станции и ноутбуке), поэтому URL-адрес проекта отличается, но я не хочу, чтобы вручную использовать URL-адрес на каждой машине больше, чем один раз и беспокоиться об этом, проверяя мой код на исходный контроль.

Как только вы выполнили начальную настройку на компьютере после получения последнего источника, ваш файл .user содержит конфигурацию. До тех пор, пока вы не проверяете файлы .user в исходный элемент управления, это, кажется, работает нормально.

Ответ 2

Я уже несколько лет страдаю той же проблемой. Проблема сохраняется вплоть до Visual Studio.NET(2003) до настоящего времени (VS 2010). Я искал автоматическое решение для автоматического переименования URL, но без каких-либо успехов.

То, что я делал, чтобы избежать этой проблемы, больше ветвятся и имеют множество разных рабочих областей:

Корневая ветка для текущего проекта   - > Филиал для разработчиков   - > Филиал для поддержки и долговременной целостности кода (это наиболее часто используемая ветвь для меня)      - > Мои личные пользовательские ветки, у которых установлены разные URL-адреса

Я знаю, что это не лучшее решение, но это лучшее, что я мог бы выяснить.