Browse Source

Use the Environment to get the ProgramFiles location;

Save Port when using IIS EXpress
pull/15/head
Eusebiu Marcu 15 years ago
parent
commit
de9fcd67de
  1. 4
      src/AddIns/Debugger/Debugger.AddIn/Service/WindowsDebugger.cs
  2. 6
      src/Main/Base/Project/Src/Gui/Dialogs/OptionPanels/ProjectOptions/WebProjectOptions/WebProjectOptions.cs
  3. 4
      src/Main/Base/Project/Src/Gui/Dialogs/OptionPanels/ProjectOptions/WebProjectOptions/WebProjectOptionsPanel.xaml
  4. 35
      src/Main/Base/Project/Src/Gui/Dialogs/OptionPanels/ProjectOptions/WebProjectOptions/WebProjectOptionsPanel.xaml.cs
  5. 23
      src/Main/Base/Project/Src/Services/WebProjectService/WebProjectService.cs

4
src/AddIns/Debugger/Debugger.AddIn/Service/WindowsDebugger.cs

@ -166,7 +166,7 @@ namespace ICSharpCode.SharpDevelop.Services @@ -166,7 +166,7 @@ namespace ICSharpCode.SharpDevelop.Services
if (options.Data.WebServer == WebServer.IISExpress) {
// start IIS express and attach to it
if (WebProjectService.IISVersion == IISVersion.IISExpress)
System.Diagnostics.Process.Start(WebProjectService.IIS_EXPRESS_PROCESS_LOCATION);
System.Diagnostics.Process.Start(WebProjectService.IIISExpressProcessLocation);
else {
MessageService.ShowError("${res:ICSharpCode.WepProjectOptionsPanel.NoProjectUrlOrProgramAction}");
return;
@ -302,7 +302,7 @@ namespace ICSharpCode.SharpDevelop.Services @@ -302,7 +302,7 @@ namespace ICSharpCode.SharpDevelop.Services
if (options.Data.WebServer == WebServer.IISExpress) {
// start IIS express
if (WebProjectService.IISVersion == IISVersion.IISExpress)
System.Diagnostics.Process.Start(WebProjectService.IIS_EXPRESS_PROCESS_LOCATION);
System.Diagnostics.Process.Start(WebProjectService.IIISExpressProcessLocation);
else {
MessageService.ShowError("${res:ICSharpCode.WepProjectOptionsPanel.NoProjectUrlOrProgramAction}");
return;

6
src/Main/Base/Project/Src/Gui/Dialogs/OptionPanels/ProjectOptions/WebProjectOptions/WebProjectOptions.cs

@ -62,10 +62,10 @@ namespace ICSharpCode.SharpDevelop.Gui.OptionPanels @@ -62,10 +62,10 @@ namespace ICSharpCode.SharpDevelop.Gui.OptionPanels
[DefaultValue(null)]
public string ProjectUrl { get; set; }
[DefaultValue(WebServer.None)]
public WebServer WebServer { get; set; }
[DefaultValue("8080")]
public string Port { get; set; }
[DefaultValue(WebServer.None)]
public WebServer WebServer { get; set; }
}
}

4
src/Main/Base/Project/Src/Gui/Dialogs/OptionPanels/ProjectOptions/WebProjectOptions/WebProjectOptionsPanel.xaml

@ -22,7 +22,9 @@ @@ -22,7 +22,9 @@
<ColumnDefinition Width="Auto"/>
</Grid.ColumnDefinitions>
<TextBlock Text="{core:Localize ICSharpCode.WepProjectOptionsPanel.Port}"/>
<TextBox Grid.Column="1" x:Name="PortTextBox" PreviewTextInput="PortTextBox_PreviewTextInput" Text="8080"/>
<TextBox Grid.Column="1" x:Name="PortTextBox"
PreviewTextInput="PortTextBox_PreviewTextInput" Text="8080"
KeyUp="PortTextBox_KeyUp" />
</Grid>
</widgets:StackPanelWithSpacing>
<!--IIS Local Server-->

35
src/Main/Base/Project/Src/Gui/Dialogs/OptionPanels/ProjectOptions/WebProjectOptions/WebProjectOptionsPanel.xaml.cs

@ -3,9 +3,9 @@ @@ -3,9 +3,9 @@
using System;
using System.IO;
using System.Web.Services.Description;
using System.Windows;
using System.Windows.Controls;
using ICSharpCode.Core;
using ICSharpCode.SharpDevelop.Project;
@ -24,8 +24,11 @@ namespace ICSharpCode.SharpDevelop.Gui.OptionPanels @@ -24,8 +24,11 @@ namespace ICSharpCode.SharpDevelop.Gui.OptionPanels
if (CurrentProjectDebugData == null)
CurrentProjectDebugData = new WebProjectDebugData();
Loaded += delegate(object sender, RoutedEventArgs e) {
Loaded += OnLoaded;
}
void OnLoaded(object sender, RoutedEventArgs e)
{
if (!WebProjectService.IsIISInstalled) {
StatusLabel.Text = ResourceService.GetString("ICSharpCode.WepProjectOptionsPanel.IISNotFound");
return;
@ -36,9 +39,9 @@ namespace ICSharpCode.SharpDevelop.Gui.OptionPanels @@ -36,9 +39,9 @@ namespace ICSharpCode.SharpDevelop.Gui.OptionPanels
case WebServer.IISExpress:
if (WebProjectService.IISVersion == IISVersion.IISExpress) {
UseIISExpress.IsChecked = true;
IISExpressGroup.IsEnabled = true;
CreateVirtualDirectoryButton.IsEnabled = true;
PortTextBox.Text = CurrentProjectDebugData.Port;
SelectIISExpress();
}
break;
case WebServer.IIS:
@ -47,16 +50,15 @@ namespace ICSharpCode.SharpDevelop.Gui.OptionPanels @@ -47,16 +50,15 @@ namespace ICSharpCode.SharpDevelop.Gui.OptionPanels
WebProjectService.IISVersion == IISVersion.IIS7 ||
WebProjectService.IISVersion == IISVersion.IIS_Future) {
UseLocalIIS.IsChecked = true;
LocalIISGroup.IsEnabled = true;
CreateVirtualDirectoryButton.IsEnabled = true;
ProjectUrl.Text = CurrentProjectDebugData.ProjectUrl ?? string.Empty;
SelectLocalIIS();
}
break;
default:
// do nothing
break;
}
};
}
WebProjectDebugData CurrentProjectDebugData {
@ -96,6 +98,11 @@ namespace ICSharpCode.SharpDevelop.Gui.OptionPanels @@ -96,6 +98,11 @@ namespace ICSharpCode.SharpDevelop.Gui.OptionPanels
}
void UseIISExpress_Click(object sender, RoutedEventArgs e)
{
SelectIISExpress();
}
void SelectIISExpress()
{
WebProjectDebugData data = new WebProjectDebugData();
data.WebServer = WebServer.IISExpress;
@ -118,6 +125,11 @@ namespace ICSharpCode.SharpDevelop.Gui.OptionPanels @@ -118,6 +125,11 @@ namespace ICSharpCode.SharpDevelop.Gui.OptionPanels
}
void UseLocalIIS_Click(object sender, RoutedEventArgs e)
{
SelectLocalIIS();
}
void SelectLocalIIS()
{
WebProjectDebugData data = new WebProjectDebugData();
data.WebServer = WebServer.IIS;
@ -182,5 +194,14 @@ namespace ICSharpCode.SharpDevelop.Gui.OptionPanels @@ -182,5 +194,14 @@ namespace ICSharpCode.SharpDevelop.Gui.OptionPanels
e.Handled = !AreAllValidNumericChars(e.Text);
base.OnPreviewTextInput(e);
}
void PortTextBox_KeyUp(object sender, System.Windows.Input.KeyEventArgs e)
{
WebProjectDebugData data = new WebProjectDebugData();
data.WebServer = WebServer.IISExpress;
data.Port = PortTextBox.Text;
data.ProjectUrl = string.Format(@"http://localhost:{0}/" + ProjectService.CurrentProject.Name, PortTextBox.Text);
CurrentProjectDebugData = data;
}
}
}

23
src/Main/Base/Project/Src/Services/WebProjectService/WebProjectService.cs

@ -46,11 +46,30 @@ namespace ICSharpCode.SharpDevelop.Project @@ -46,11 +46,30 @@ namespace ICSharpCode.SharpDevelop.Project
const string FRAMEWORK32 = @"Framework\";
const string FRAMEWORK64 = @"Framework64\";
/// <summary>
/// Gets &quot;iisexpress&quot; string.
/// </summary>
public const string IIS_EXPRESS_PROCESS_NAME = "iisexpress";
/// <summary>
/// Gets &quot;aspnet_wp&quot; string.
/// </summary>
public const string IIS_5_PROCESS_NAME = "aspnet_wp";
/// <summary>
/// Gets &quot;w3wp&quot; string.
/// </summary>
public const string IIS_NEW_PROCESS_NAME = "w3wp";
public const string IIS_EXPRESS_PROCESS_LOCATION = @"C:\Program Files\IIS Express\iisexpress.exe";
/// <summary>
/// Gets IIS Express process location.
/// </summary>
public static string IIISExpressProcessLocation {
get {
return Environment.GetFolderPath(System.Environment.SpecialFolder.ProgramFiles) +
@"\IIS Express\iisexpress.exe";
}
}
/// <summary>
/// Gets the IIS worker process name.
@ -158,7 +177,7 @@ namespace ICSharpCode.SharpDevelop.Project @@ -158,7 +177,7 @@ namespace ICSharpCode.SharpDevelop.Project
if (regValue > 4)
return (IISVersion)regValue;
if (File.Exists(WebProjectService.IIS_EXPRESS_PROCESS_LOCATION))
if (File.Exists(IIISExpressProcessLocation))
return IISVersion.IISExpress;
return IISVersion.None;

Loading…
Cancel
Save