diff --git a/src/AddIns/Misc/PackageManagement/Project/Src/EnvDTE/ProjectItems.cs b/src/AddIns/Misc/PackageManagement/Project/Src/EnvDTE/ProjectItems.cs index 5e64ea1c04..eef0ab2cc3 100644 --- a/src/AddIns/Misc/PackageManagement/Project/Src/EnvDTE/ProjectItems.cs +++ b/src/AddIns/Misc/PackageManagement/Project/Src/EnvDTE/ProjectItems.cs @@ -98,6 +98,7 @@ namespace ICSharpCode.PackageManagement.EnvDTE { ProjectItem projectItem = project.AddFileProjectItemUsingFullPath(fileName); project.Save(); + fileService.ParseFile(fileName); return projectItem; } diff --git a/src/AddIns/Misc/PackageManagement/Project/Src/IPackageManagementFileService.cs b/src/AddIns/Misc/PackageManagement/Project/Src/IPackageManagementFileService.cs index f95e39a837..3466eba1a3 100644 --- a/src/AddIns/Misc/PackageManagement/Project/Src/IPackageManagementFileService.cs +++ b/src/AddIns/Misc/PackageManagement/Project/Src/IPackageManagementFileService.cs @@ -14,5 +14,7 @@ namespace ICSharpCode.PackageManagement bool FileExists(string fileName); string[] GetFiles(string path); string[] GetDirectories(string path); + + void ParseFile(string fileName); } } diff --git a/src/AddIns/Misc/PackageManagement/Project/Src/PackageManagementFileService.cs b/src/AddIns/Misc/PackageManagement/Project/Src/PackageManagementFileService.cs index ef644105f5..0f97bb6b3c 100644 --- a/src/AddIns/Misc/PackageManagement/Project/Src/PackageManagementFileService.cs +++ b/src/AddIns/Misc/PackageManagement/Project/Src/PackageManagementFileService.cs @@ -76,5 +76,10 @@ namespace ICSharpCode.PackageManagement return Directory.GetDirectories(path); } } + + public void ParseFile(string fileName) + { + ParserService.ParseFile(fileName); + } } } diff --git a/src/AddIns/Misc/PackageManagement/Test/Src/EnvDTE/ProjectItemsTests.cs b/src/AddIns/Misc/PackageManagement/Test/Src/EnvDTE/ProjectItemsTests.cs index 9b258e6daf..65d735e9c5 100644 --- a/src/AddIns/Misc/PackageManagement/Test/Src/EnvDTE/ProjectItemsTests.cs +++ b/src/AddIns/Misc/PackageManagement/Test/Src/EnvDTE/ProjectItemsTests.cs @@ -410,6 +410,20 @@ namespace PackageManagement.Tests.EnvDTE Assert.IsTrue(saved); } + [Test] + public void AddFromFile_FullFileNameIsInsideProject_FileIsParsed() + { + CreateProjectItems(); + msbuildProject.FileName = @"d:\projects\myproject\myproject.csproj"; + string fileName = @"d:\projects\myproject\packages\tools\test.cs"; + + projectItems.AddFromFile(fileName); + + string parsedFileName = fakeFileService.FileNamePassedToParseFile; + + Assert.AreEqual(fileName, parsedFileName); + } + [Test] public void AddFromFile_FullFileNameIsInsideProject_ProjectItemReturned() { diff --git a/src/AddIns/Misc/PackageManagement/Test/Src/Helpers/FakeFileService.cs b/src/AddIns/Misc/PackageManagement/Test/Src/Helpers/FakeFileService.cs index 9d2f058728..489f5d700a 100644 --- a/src/AddIns/Misc/PackageManagement/Test/Src/Helpers/FakeFileService.cs +++ b/src/AddIns/Misc/PackageManagement/Test/Src/Helpers/FakeFileService.cs @@ -106,5 +106,12 @@ namespace PackageManagement.Tests.Helpers } return new string[0]; } + + public string FileNamePassedToParseFile; + + public void ParseFile(string fileName) + { + FileNamePassedToParseFile = fileName; + } } }