Browse Source

SD2-799 - Updating web references resets the namespace. The namespace is now stored inside the MSBuild WebReferenceUrl element. Modified SharpQuery's OLE DB COM reference to use the new format so the interop assembly can be located for code completion.

git-svn-id: svn://svn.sharpdevelop.net/sharpdevelop/branches/2.0@1385 1ccf3a8d-04fe-1044-b7c0-cef0b8235c61
shortcuts
Matt Ward 20 years ago
parent
commit
9add2ad9bb
  1. 16
      src/AddIns/Misc/SharpQuery/SharpQuery.csproj
  2. 1
      src/Main/Base/Project/Src/Gui/Dialogs/ReferenceDialog/WebReference.cs
  3. 2
      src/Main/Base/Project/Src/Gui/Pads/ProjectBrowser/Commands/ReferenceFolderNodeCommands.cs
  4. 14
      src/Main/Base/Project/Src/Project/WebReferenceUrl.cs
  5. 6
      src/Main/Base/Test/WebReferences/WebReferenceProjectItemsTest.cs
  6. 24
      src/Main/Base/Test/WebReferences/WebReferenceUrlTests.cs

16
src/AddIns/Misc/SharpQuery/SharpQuery.csproj

@ -77,14 +77,6 @@
<Compile Include="Src\SharpQuerySchemaClass.cs" /> <Compile Include="Src\SharpQuerySchemaClass.cs" />
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<COMReference Include="Microsoft OLE DB Service Component 1.0 Type Library">
<Guid>{2206CEB0-19C1-11D1-89E0-00C04FD7A829}</Guid>
<VersionMajor>1</VersionMajor>
<VersionMinor>0</VersionMinor>
<Lcid>0</Lcid>
<WrapperTool>tlbimp</WrapperTool>
<Isolated>False</Isolated>
</COMReference>
<ProjectReference Include="..\..\..\Main\Base\Project\ICSharpCode.SharpDevelop.csproj"> <ProjectReference Include="..\..\..\Main\Base\Project\ICSharpCode.SharpDevelop.csproj">
<Project>{2748AD25-9C63-4E12-877B-4DCE96FBED54}</Project> <Project>{2748AD25-9C63-4E12-877B-4DCE96FBED54}</Project>
<Name>ICSharpCode.SharpDevelop</Name> <Name>ICSharpCode.SharpDevelop</Name>
@ -96,6 +88,14 @@
<Private>False</Private> <Private>False</Private>
</ProjectReference> </ProjectReference>
<Content Include="PostBuildEvent.proj" /> <Content Include="PostBuildEvent.proj" />
<COMReference Include="MSDASC">
<Guid>{2206CEB0-19C1-11D1-89E0-00C04FD7A829}</Guid>
<VersionMajor>1</VersionMajor>
<VersionMinor>0</VersionMinor>
<Lcid>0</Lcid>
<WrapperTool>tlbimp</WrapperTool>
<Isolated>False</Isolated>
</COMReference>
</ItemGroup> </ItemGroup>
<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.Targets" /> <Import Project="$(MSBuildBinPath)\Microsoft.CSharp.Targets" />
<Import Project="PostBuildEvent.proj" /> <Import Project="PostBuildEvent.proj" />

1
src/Main/Base/Project/Src/Gui/Dialogs/ReferenceDialog/WebReference.cs

@ -372,6 +372,7 @@ namespace ICSharpCode.SharpDevelop.Gui
webReferenceUrl.Include = url; webReferenceUrl.Include = url;
webReferenceUrl.UpdateFromURL = url; webReferenceUrl.UpdateFromURL = url;
webReferenceUrl.RelPath = relativePath; webReferenceUrl.RelPath = relativePath;
webReferenceUrl.Namespace = proxyNamespace;
items.Add(webReferenceUrl); items.Add(webReferenceUrl);
// References. // References.

2
src/Main/Base/Project/Src/Gui/Pads/ProjectBrowser/Commands/ReferenceFolderNodeCommands.cs

@ -56,7 +56,7 @@ namespace ICSharpCode.SharpDevelop.Project.Commands
DiscoveryClientProtocol protocol = DiscoverWebServices(url.UpdateFromURL); DiscoveryClientProtocol protocol = DiscoverWebServices(url.UpdateFromURL);
if (protocol != null) { if (protocol != null) {
// Save web services. // Save web services.
WebReference webReference = new WebReference(url.Project, url.UpdateFromURL, node.Text, url.Project.RootNamespace, protocol); WebReference webReference = new WebReference(url.Project, url.UpdateFromURL, node.Text, url.Namespace, protocol);
webReference.Save(); webReference.Save();
// Update project. // Update project.

14
src/Main/Base/Project/Src/Project/WebReferenceUrl.cs

@ -98,6 +98,20 @@ namespace ICSharpCode.SharpDevelop.Project
} }
} }
[Browsable(false)]
public string Namespace {
get {
string ns = base.Properties["Namespace"];
if (ns.Length > 0) {
return ns;
}
return Project.RootNamespace;
}
set {
base.Properties["Namespace"] = value;
}
}
public override string FileName { public override string FileName {
get { get {
if (Project != null && RelPath != null) { if (Project != null && RelPath != null) {

6
src/Main/Base/Test/WebReferences/WebReferenceProjectItemsTest.cs

@ -110,6 +110,12 @@ namespace ICSharpCode.SharpDevelop.Tests.WebReferences
Assert.AreEqual("Static", webReferenceUrl.UrlBehavior); Assert.AreEqual("Static", webReferenceUrl.UrlBehavior);
} }
[Test]
public void WebReferenceUrlNamespace()
{
Assert.AreEqual(proxyNamespace, webReferenceUrl.Namespace);
}
[Test] [Test]
public void WebReferenceRelPath() public void WebReferenceRelPath()
{ {

24
src/Main/Base/Test/WebReferences/WebReferenceUrlTests.cs

@ -54,6 +54,28 @@ namespace ICSharpCode.SharpDevelop.Tests.WebReferences
Assert.AreEqual("http://localhost/test.asmx", url.Include); Assert.AreEqual("http://localhost/test.asmx", url.Include);
Assert.AreEqual("Web References\\mywebservice", url.RelPath); Assert.AreEqual("Web References\\mywebservice", url.RelPath);
} }
[Test]
public void NoNamespaceSpecified()
{
MSBuildProject project = new MSBuildProject();
project.FileName = "c:\\projects\\test\\foo.csproj";
project.RootNamespace = "TestRootNamespace";
WebReferenceUrl url = new WebReferenceUrl(project);
Assert.AreEqual("TestRootNamespace", url.Namespace);
}
[Test]
public void NamespaceSpecified()
{
MSBuildProject project = new MSBuildProject();
project.FileName = "c:\\projects\\test\\foo.csproj";
project.RootNamespace = "TestRootNamespace";
WebReferenceUrl url = new WebReferenceUrl(project);
url.Namespace = "WebReferenceNamespace";
Assert.AreEqual("WebReferenceNamespace", url.Namespace);
}
} }
} }

Loading…
Cancel
Save