/* **************************************************************************** * * Copyright (c) Microsoft Corporation. * * This source code is subject to terms and conditions of the Apache License, Version 2.0. A * copy of the license can be found in the License.html file at the root of this distribution. If * you cannot locate the Apache License, Version 2.0, please send an email to * vspython@microsoft.com. By using this source code in any fashion, you are agreeing to be bound * by the terms of the Apache License, Version 2.0. * * You must not remove this notice, or any other, from this software. * * ***************************************************************************/ using System; using System.Collections.Generic; using System.Diagnostics.CodeAnalysis; using System.Runtime.InteropServices; using Microsoft.VisualStudio.Shell.Interop; using MSBuild = Microsoft.Build.Evaluation; namespace Microsoft.VisualStudio.Project { /// /// Interface for manipulating build dependency /// /// Normally this should be an public interface but since it shouldbe available for the aggregator it must be made public. [ComVisible(true)] public interface IBuildDependencyUpdate { /// /// Defines a container for storing BuildDependencies /// [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1819:PropertiesShouldNotReturnArrays")] IVsBuildDependency[] BuildDependencies { get; } /// /// Adds a BuildDependency to the container /// /// The dependency to add void AddBuildDependency(IVsBuildDependency dependency); /// /// Removes the builddependency from teh container. /// /// The dependency to add void RemoveBuildDependency(IVsBuildDependency dependency); } /// /// Provides access to the reference data container. /// /// Normally this should be an internal interface but since it should be available for /// the aggregator it must be made public. [ComVisible(true)] public interface IReferenceContainerProvider { IReferenceContainer GetReferenceContainer(); } /// /// Defines a container for manipulating references /// public interface IReferenceContainer { IList EnumReferences(); ReferenceNode AddReferenceFromSelectorData(VSCOMPONENTSELECTORDATA selectorData); void LoadReferencesFromBuildProject(MSBuild.Project buildProject); #if DEV11_OR_LATER bool ContainsReference(IVsReference node); void AddReference(IVsReference node); bool RemoveReference(IVsReference node); #endif } /// /// Defines support for single file generator /// public interface ISingleFileGenerator { /// /// Runs the generator on the item represented by the document moniker. /// /// void RunGenerator(string document); } }