Browse Source

Fix SD-1841 - SolutionDir MSBuild property not defined when running project.

pull/21/merge
Matt Ward 14 years ago
parent
commit
256b569d03
  1. 4
      src/Main/Base/Project/Src/Project/Solution/Solution.cs
  2. 2
      src/Main/Base/Test/ICSharpCode.SharpDevelop.Tests.csproj
  3. 38
      src/Main/Base/Test/SolutionTests.cs

4
src/Main/Base/Project/Src/Project/Solution/Solution.cs

@ -1193,9 +1193,9 @@ namespace ICSharpCode.SharpDevelop.Project @@ -1193,9 +1193,9 @@ namespace ICSharpCode.SharpDevelop.Project
return newSolution;
}
void UpdateMSBuildProperties()
public void UpdateMSBuildProperties()
{
MSBuildProjectCollection.SetGlobalProperty("SolutionDir", Directory);
MSBuildProjectCollection.SetGlobalProperty("SolutionDir", Directory + @"\");
}
#endregion

2
src/Main/Base/Test/ICSharpCode.SharpDevelop.Tests.csproj

@ -33,6 +33,7 @@ @@ -33,6 +33,7 @@
<FileAlignment>4096</FileAlignment>
</PropertyGroup>
<ItemGroup>
<Reference Include="Microsoft.Build" />
<Reference Include="Microsoft.VisualBasic" />
<Reference Include="PresentationCore">
<RequiredTargetFramework>3.0</RequiredTargetFramework>
@ -108,6 +109,7 @@ @@ -108,6 +109,7 @@
<Compile Include="ServiceReferences\ServiceReferencesFolderNodeTests.cs" />
<Compile Include="ServiceReferences\ServiceReferencesProjectItemTests.cs" />
<Compile Include="ServiceReferences\WebServiceMetadataSetTests.cs" />
<Compile Include="SolutionTests.cs" />
<Compile Include="StringTagProvider\MockProjectForTagProvider.cs" />
<Compile Include="StringTagProvider\NullProjectStringTagProviderTestFixture.cs" />
<Compile Include="StringTagProvider\ProjectTagsTestFixture.cs" />

38
src/Main/Base/Test/SolutionTests.cs

@ -0,0 +1,38 @@ @@ -0,0 +1,38 @@
// Copyright (c) AlphaSierraPapa for the SharpDevelop Team (for details please see \doc\copyright.txt)
// This code is distributed under the GNU LGPL (for details please see \doc\license.txt)
using System;
using ICSharpCode.SharpDevelop.Project;
using Microsoft.Build.Execution;
using NUnit.Framework;
using Rhino.Mocks;
namespace ICSharpCode.SharpDevelop.Tests
{
[TestFixture]
public class SolutionTests
{
Solution solution;
void CreateSolution()
{
IProjectChangeWatcher fakeWatcher = MockRepository.GenerateStub<IProjectChangeWatcher>();
solution = new Solution(fakeWatcher);
}
[Test]
public void UpdateMSBuildProperties_SolutionHasFileName_SolutionDefinesSolutionDirMSBuildPropertyWithDirectoryEndingInForwardSlash()
{
CreateSolution();
solution.FileName = @"d:\projects\MyProject\MySolution.sln";
solution.UpdateMSBuildProperties();
ProjectPropertyInstance property = solution.MSBuildProjectCollection.GetGlobalProperty("SolutionDir");
string solutionDir = property.EvaluatedValue;
string expectedSolutionDir = @"d:\projects\MyProject\";
Assert.AreEqual(expectedSolutionDir, solutionDir);
}
}
}
Loading…
Cancel
Save