Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
41 commits
Select commit Hold shift + click to select a range
901b2de
Move VirtualProjectBuilder to FileBasedPrograms source package
jjonescz Jun 12, 2026
60921e6
Use interface
jjonescz Jun 12, 2026
1269981
Add GetRawXml API
jjonescz Jun 15, 2026
accfe2a
Move utilities out of a subdir
jjonescz Jun 15, 2026
0bf62d8
Fixup dotnet-watch
jjonescz Jun 15, 2026
a74e451
Add CoreUtils to cli.slnf
jjonescz Jun 16, 2026
e915092
Move `#:ref` handling into `VirtualProjectBuilder`
jjonescz Jun 16, 2026
0f3a87a
Fixup test project's build
jjonescz Jun 16, 2026
3a5ef2a
Fixup API list
jjonescz Jun 16, 2026
6706e73
Add metadata to virtual project references
jjonescz Jun 17, 2026
d939b8e
Fix a leak
jjonescz Jun 17, 2026
a760d75
Fixup API list
jjonescz Jun 17, 2026
11aa673
Fix broken GC tests
jjonescz Jun 17, 2026
b9afbc8
Rename build service
jjonescz Jun 25, 2026
e310b9c
Make FileBasedPrograms source package independent on CSharp
jjonescz Jun 25, 2026
d532635
Improve TFM condition
jjonescz Jun 25, 2026
2dcbab5
Ensure LanguageService is source-shareable
jjonescz Jun 25, 2026
983b5fa
Revert "Ensure LanguageService is source-shareable"
jjonescz Jun 26, 2026
4d3345f
Revert "Make FileBasedPrograms source package independent on CSharp"
jjonescz Jun 26, 2026
250b879
Revert changes to cli.slnf
jjonescz Jun 26, 2026
50b5fd9
Add global build properties to source package
jjonescz Jun 26, 2026
b5a9d32
Merge branch 'release/10.0.4xx' into 78887-sprint-MSBuildWorkspace
jjonescz Jun 26, 2026
6f593ad
Fixup netstandard build
jjonescz Jun 26, 2026
e8e2526
Allow customizing temp subdirectory
jjonescz Jun 29, 2026
386bdee
Preserve GetFullPath semantics
jjonescz Jun 29, 2026
9c9241c
Avoid reliance on STJ
jjonescz Jun 29, 2026
6334b0a
Avoid storing computable default properties
jjonescz Jul 21, 2026
c0b247f
Allow using default target framework
jjonescz Jul 22, 2026
958b7d0
Document IBuildService
jjonescz Jul 22, 2026
457bbeb
Fixup PublicAPI list
jjonescz Jul 22, 2026
ad6e798
Move ProjectRootElement cache into ProjectTools
jjonescz Jul 22, 2026
daddbca
Merge global properties inside the API
jjonescz Jul 22, 2026
8d3fb83
Merge branch 'main' into 78887-sprint-MSBuildWorkspace
jjonescz Jul 22, 2026
13afc04
Set root namespace in FBP package
jjonescz Jul 22, 2026
a2accd3
Add a comment
jjonescz Jul 27, 2026
9c0641c
Remove blank lines
jjonescz Jul 27, 2026
2a855ee
Get all item metadata values at once
jjonescz Jul 27, 2026
ef0e2a5
Fixup project convert command
jjonescz Jul 27, 2026
fd9eeb5
Make IBuildService async
jjonescz Jul 27, 2026
c38da23
Fixup dotnet-watch
jjonescz Jul 27, 2026
122a847
Add `ConfigureAwait(false)`
jjonescz Jul 27, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions src/Cli/Microsoft.DotNet.FileBasedPrograms/.editorconfig
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,8 @@
# when referenced from a project via package reference.
dotnet_diagnostic.IDE0240.severity = none

dotnet_diagnostic.CA2007.severity = warning # Consider calling ConfigureAwait on the awaited task

dotnet_diagnostic.RS0051.severity = warning # Add internal types and members to the declared API
dotnet_diagnostic.RS0052.severity = warning # Remove deleted types and members from the declared internal API
dotnet_diagnostic.RS0053.severity = warning # The contents of the internal API files are invalid
Expand Down
17 changes: 17 additions & 0 deletions src/Cli/Microsoft.DotNet.FileBasedPrograms/Extensions.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
// Licensed to the .NET Foundation under one or more agreements.
// The .NET Foundation licenses this file to you under the MIT license.

#nullable enable
using System.Collections.Generic;

namespace Microsoft.DotNet.Utilities;

internal static class Extensions
{
#if !NET
public static HashSet<T> ToHashSet<T>(this IEnumerable<T> source, IEqualityComparer<T> comparer)
{
return new HashSet<T>(source, comparer);
}
#endif
}
Original file line number Diff line number Diff line change
Expand Up @@ -193,4 +193,15 @@
<value>Each entry in 'FileBasedProgramsItemMapping' MSBuild property must map to a non-empty item type. The item type '{0}' in entry '{1}' is invalid.</value>
<comment>{Locked="FileBasedProgramsItemMapping"}{Locked="MSBuild"}</comment>
</data>
<data name="EmptyTempPath" xml:space="preserve">
<value>Unable to determine a temporary directory path. Consider configuring the TEMP environment variable on Windows or local app data folder on Unix.</value>
</data>
<data name="IncludedFileNotFound" xml:space="preserve">
<value>File included via #:include directive (or Compile item) not found: {0}</value>
<comment>{Locked="#:include"}{Locked="Compile"}. {0} is file path.</comment>
</data>
<data name="ExperimentalFeatureDisabled" xml:space="preserve">
<value>This is an experimental feature, set MSBuild property '{0}' to 'true' to enable it.</value>
<comment>{Locked="MSBuild"}{Locked="true"}. {0} is MSBuild property name.</comment>
</data>
</root>
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,6 @@
using System.IO;
using System.Linq;
using System.Text;
using System.Text.Json.Serialization;
using System.Text.RegularExpressions;
using System.Xml;
using Microsoft.CodeAnalysis;
Expand Down Expand Up @@ -39,7 +38,7 @@ public static SyntaxTokenParser CreateTokenizer(SourceText text)
public static ImmutableArray<CSharpDirective> FindDirectives(SourceFile sourceFile, bool reportAllErrors, ErrorReporter errorReporter, bool checkDuplicates = true)
{
var builder = ImmutableArray.CreateBuilder<CSharpDirective>();
var tokenizer = CreateTokenizer(sourceFile.Text);
using var tokenizer = CreateTokenizer(sourceFile.Text);

var result = tokenizer.ParseLeadingTrivia();
var triviaList = result.Token.LeadingTrivia;
Expand Down Expand Up @@ -984,7 +983,9 @@ public readonly struct Position
{
public required string Path { get; init; }
public required LinePositionSpan Span { get; init; }
[JsonIgnore]
#if FILE_BASED_PROGRAMS_SYSTEM_TEXT_JSON // only run-api needs this, see remarks
[System.Text.Json.Serialization.JsonIgnore]
#endif
public TextSpan TextSpan { get; init; }
}
}
Expand Down
86 changes: 86 additions & 0 deletions src/Cli/Microsoft.DotNet.FileBasedPrograms/IBuildService.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,86 @@
// Licensed to the .NET Foundation under one or more agreements.
// The .NET Foundation licenses this file to you under the MIT license.

#nullable enable

using System.Collections.Generic;
using System.Collections.Immutable;
using System.Threading.Tasks;
using System.Xml;

namespace Microsoft.DotNet.FileBasedPrograms;

/// <summary>
/// The root interface for our abstraction over MSBuild APIs.
/// This is used by <c>VirtualProjectBuilder</c> so that it can be used
/// both by dotnet CLI (which uses MSBuild APIs directly)
/// and by roslyn IDE (which uses MSBuild through RPC).
/// </summary>
#if FILE_BASED_PROGRAMS_PUBLIC
public
#else
internal
#endif
interface IBuildService
{
/// <summary>
/// An abstraction over MSBuild's <c>ProjectInstance.FromProjectRootElement</c> method.
/// </summary>
/// <param name="additionalGlobalProperties">
/// NOTE: Unlike the MSBuild API, these properties are automatically merged with <paramref name="projectCollection"/>'s global properties
/// (the latter come first, so the former can overwrite them).
/// </param>
ValueTask<IProjectInstance> CreateProjectInstanceFromProjectRootElementAsync(
IProjectRootElement projectRoot,
IProjectCollection projectCollection,
IDictionary<string, string>? additionalGlobalProperties);

/// <summary>
/// An abstraction over MSBuild's <c>ProjectRootElement.Create</c> method.
/// </summary>
IProjectRootElement CreateProjectRootElement(XmlReader xmlReader, IProjectCollection projectCollection, string entryPointFilePath);
}

/// <summary>
/// An abstraction of MSBuild's <c>ProjectCollection</c>.
/// </summary>
/// <seealso cref="IBuildService"/>
#if FILE_BASED_PROGRAMS_PUBLIC
public
#else
internal
#endif
interface IProjectCollection
{
}

/// <summary>
/// An abstraction of MSBuild's <c>ProjectInstance</c>.
/// </summary>
/// <seealso cref="IBuildService"/>
#if FILE_BASED_PROGRAMS_PUBLIC
public
#else
internal
#endif
interface IProjectInstance
{
ValueTask<ImmutableArray<ImmutableArray<string>>> GetItemMetadataValuesAsync(string itemType, ImmutableArray<string> metadataNames);
ValueTask<string> GetPropertyValueAsync(string propertyName);
ValueTask<string> ExpandStringAsync(string value);
}

/// <summary>
/// An abstraction of MSBuild's <c>ProjectRootElement</c>.
/// </summary>
/// <seealso cref="IBuildService"/>
#if FILE_BASED_PROGRAMS_PUBLIC
public
#else
internal
#endif
interface IProjectRootElement
{
string? FullPath { get; set; }
string GetRawXml();
}
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
const Microsoft.DotNet.FileBasedPrograms.CSharpDirective.IncludeOrExclude.MappingPropertyName = "FileBasedProgramsItemMapping" -> string!
const Microsoft.DotNet.FileBasedPrograms.CSharpDirective.Ref.ExperimentalFileBasedProgramEnableRefDirective = "ExperimentalFileBasedProgramEnableRefDirective" -> string!
const Microsoft.DotNet.FileBasedPrograms.VirtualProjectBuilder.FromIncludeDirectiveMetadataName = "FileBasedProgramsFromIncludeDirective" -> string!
const Microsoft.DotNet.FileBasedPrograms.VirtualProjectBuilder.FromRefDirectiveMetadataName = "FileBasedProgramsFromRefDirective" -> string!
Microsoft.DotNet.FileBasedPrograms.CSharpDirective
Microsoft.DotNet.FileBasedPrograms.CSharpDirective.CSharpDirective(in Microsoft.DotNet.FileBasedPrograms.CSharpDirective.ParseInfo info) -> void
Microsoft.DotNet.FileBasedPrograms.CSharpDirective.IncludeOrExclude
Expand All @@ -9,6 +11,44 @@ Microsoft.DotNet.FileBasedPrograms.CSharpDirective.IncludeOrExclude.ItemType.ini
Microsoft.DotNet.FileBasedPrograms.CSharpDirective.IncludeOrExclude.Kind.get -> Microsoft.DotNet.FileBasedPrograms.CSharpDirective.IncludeOrExcludeKind
Microsoft.DotNet.FileBasedPrograms.CSharpDirective.IncludeOrExclude.Kind.init -> void
Microsoft.DotNet.FileBasedPrograms.CSharpDirective.IncludeOrExclude.KindToMSBuildString() -> string!
Microsoft.DotNet.FileBasedPrograms.IBuildService
Microsoft.DotNet.FileBasedPrograms.IBuildService.CreateProjectInstanceFromProjectRootElementAsync(Microsoft.DotNet.FileBasedPrograms.IProjectRootElement! projectRoot, Microsoft.DotNet.FileBasedPrograms.IProjectCollection! projectCollection, System.Collections.Generic.IDictionary<string!, string!>? additionalGlobalProperties) -> System.Threading.Tasks.ValueTask<Microsoft.DotNet.FileBasedPrograms.IProjectInstance!>
Microsoft.DotNet.FileBasedPrograms.IBuildService.CreateProjectRootElement(System.Xml.XmlReader! xmlReader, Microsoft.DotNet.FileBasedPrograms.IProjectCollection! projectCollection, string! entryPointFilePath) -> Microsoft.DotNet.FileBasedPrograms.IProjectRootElement!
Microsoft.DotNet.FileBasedPrograms.IProjectCollection
Microsoft.DotNet.FileBasedPrograms.IProjectCollection.GlobalProperties.get -> System.Collections.Generic.IDictionary<string!, string!>!
Microsoft.DotNet.FileBasedPrograms.IProjectInstance
Comment thread
333fred marked this conversation as resolved.
Microsoft.DotNet.FileBasedPrograms.IProjectInstance.ExpandStringAsync(string! value) -> System.Threading.Tasks.ValueTask<string!>
Microsoft.DotNet.FileBasedPrograms.IProjectInstance.GetItemMetadataValuesAsync(string! itemType, System.Collections.Immutable.ImmutableArray<string!> metadataNames) -> System.Threading.Tasks.ValueTask<System.Collections.Immutable.ImmutableArray<System.Collections.Immutable.ImmutableArray<string!>>>
Microsoft.DotNet.FileBasedPrograms.IProjectInstance.GetPropertyValueAsync(string! propertyName) -> System.Threading.Tasks.ValueTask<string!>
Microsoft.DotNet.FileBasedPrograms.IProjectRootElement
Microsoft.DotNet.FileBasedPrograms.IProjectRootElement.FullPath.get -> string?
Microsoft.DotNet.FileBasedPrograms.IProjectRootElement.FullPath.set -> void
Microsoft.DotNet.FileBasedPrograms.IProjectRootElement.GetRawXml() -> string!
Microsoft.DotNet.FileBasedPrograms.VirtualProjectBuilder
Microsoft.DotNet.FileBasedPrograms.VirtualProjectBuilder.ArtifactsPath.get -> string!
Microsoft.DotNet.FileBasedPrograms.VirtualProjectBuilder.CreateProjectInstanceAsync(Microsoft.DotNet.FileBasedPrograms.IProjectCollection! projectCollection, Microsoft.DotNet.FileBasedPrograms.ErrorReporter! reportError, System.Collections.Immutable.ImmutableArray<Microsoft.DotNet.FileBasedPrograms.CSharpDirective!> directives = default(System.Collections.Immutable.ImmutableArray<Microsoft.DotNet.FileBasedPrograms.CSharpDirective!>), System.Collections.Generic.IDictionary<string!, string!>? additionalGlobalProperties = null, bool validateAllDirectives = false, System.Collections.Generic.HashSet<string!>? processedRefFiles = null) -> System.Threading.Tasks.ValueTask<Microsoft.DotNet.FileBasedPrograms.VirtualProjectBuilder.Result>
Microsoft.DotNet.FileBasedPrograms.VirtualProjectBuilder.EntryPointFileFullPath.get -> string!
Microsoft.DotNet.FileBasedPrograms.VirtualProjectBuilder.EntryPointSourceFile.get -> Microsoft.DotNet.FileBasedPrograms.SourceFile
Microsoft.DotNet.FileBasedPrograms.VirtualProjectBuilder.ExplicitProjectItem
Microsoft.DotNet.FileBasedPrograms.VirtualProjectBuilder.ExplicitProjectItem.Deconstruct(out string! ItemType, out string! Include) -> void
Microsoft.DotNet.FileBasedPrograms.VirtualProjectBuilder.ExplicitProjectItem.Equals(Microsoft.DotNet.FileBasedPrograms.VirtualProjectBuilder.ExplicitProjectItem other) -> bool
Microsoft.DotNet.FileBasedPrograms.VirtualProjectBuilder.ExplicitProjectItem.ExplicitProjectItem() -> void
Microsoft.DotNet.FileBasedPrograms.VirtualProjectBuilder.ExplicitProjectItem.ExplicitProjectItem(string! ItemType, string! Include) -> void
Microsoft.DotNet.FileBasedPrograms.VirtualProjectBuilder.ExplicitProjectItem.Include.get -> string!
Microsoft.DotNet.FileBasedPrograms.VirtualProjectBuilder.ExplicitProjectItem.Include.init -> void
Microsoft.DotNet.FileBasedPrograms.VirtualProjectBuilder.ExplicitProjectItem.ItemType.get -> string!
Microsoft.DotNet.FileBasedPrograms.VirtualProjectBuilder.ExplicitProjectItem.ItemType.init -> void
Microsoft.DotNet.FileBasedPrograms.VirtualProjectBuilder.GetItemMappingAsync(Microsoft.DotNet.FileBasedPrograms.IProjectInstance! project, Microsoft.DotNet.FileBasedPrograms.ErrorReporter! reportError) -> System.Threading.Tasks.ValueTask<System.Collections.Immutable.ImmutableArray<(string! Extension, string! ItemType)>>
Microsoft.DotNet.FileBasedPrograms.VirtualProjectBuilder.RequestedTargets.get -> string![]?
Microsoft.DotNet.FileBasedPrograms.VirtualProjectBuilder.Result
Microsoft.DotNet.FileBasedPrograms.VirtualProjectBuilder.Result.EvaluatedDirectives.get -> System.Collections.Immutable.ImmutableArray<Microsoft.DotNet.FileBasedPrograms.CSharpDirective!>
Microsoft.DotNet.FileBasedPrograms.VirtualProjectBuilder.Result.Project.get -> Microsoft.DotNet.FileBasedPrograms.IProjectInstance!
Microsoft.DotNet.FileBasedPrograms.VirtualProjectBuilder.Result.ProjectRootElement.get -> Microsoft.DotNet.FileBasedPrograms.IProjectRootElement!
Microsoft.DotNet.FileBasedPrograms.VirtualProjectBuilder.Result.Result() -> void
Microsoft.DotNet.FileBasedPrograms.VirtualProjectBuilder.Result.Result(Microsoft.DotNet.FileBasedPrograms.IProjectInstance! project, Microsoft.DotNet.FileBasedPrograms.IProjectRootElement! projectRootElement, System.Collections.Immutable.ImmutableArray<Microsoft.DotNet.FileBasedPrograms.CSharpDirective!> evaluatedDirectives) -> void
Microsoft.DotNet.FileBasedPrograms.VirtualProjectBuilder.VirtualProjectBuilder(Microsoft.DotNet.FileBasedPrograms.IBuildService! buildService, string! entryPointFileFullPath, string? targetFramework, string![]? requestedTargets = null, string? artifactsPath = null, Microsoft.CodeAnalysis.Text.SourceText? sourceText = null) -> void
Microsoft.DotNet.Utilities.Extensions
Microsoft.DotNet.Utilities.Sha256Hasher
override Microsoft.DotNet.FileBasedPrograms.CSharpDirective.IncludeOrExclude.KindToString() -> string!
Microsoft.DotNet.FileBasedPrograms.CSharpDirective.IncludeOrExclude.OriginalName.get -> string!
Microsoft.DotNet.FileBasedPrograms.CSharpDirective.IncludeOrExclude.OriginalName.init -> void
Expand All @@ -18,6 +58,23 @@ Microsoft.DotNet.FileBasedPrograms.CSharpDirective.IncludeOrExcludeKind
Microsoft.DotNet.FileBasedPrograms.CSharpDirective.IncludeOrExcludeKind.Exclude = 1 -> Microsoft.DotNet.FileBasedPrograms.CSharpDirective.IncludeOrExcludeKind
Microsoft.DotNet.FileBasedPrograms.CSharpDirective.IncludeOrExcludeKind.Include = 0 -> Microsoft.DotNet.FileBasedPrograms.CSharpDirective.IncludeOrExcludeKind
Microsoft.DotNet.FileBasedPrograms.CSharpDirective.Info.get -> Microsoft.DotNet.FileBasedPrograms.CSharpDirective.ParseInfo
override Microsoft.DotNet.FileBasedPrograms.VirtualProjectBuilder.ExplicitProjectItem.GetHashCode() -> int
static Microsoft.DotNet.FileBasedPrograms.VirtualProjectBuilder.CreateProjectInstanceAsync(Microsoft.DotNet.FileBasedPrograms.IBuildService! buildService, string! entryPointFilePath, string! targetFramework, Microsoft.DotNet.FileBasedPrograms.IProjectCollection! projectCollection, System.Action<string!, int, string!>! errorReporter) -> System.Threading.Tasks.ValueTask<Microsoft.DotNet.FileBasedPrograms.IProjectInstance!>
static Microsoft.DotNet.FileBasedPrograms.VirtualProjectBuilder.ExplicitProjectItem.operator !=(Microsoft.DotNet.FileBasedPrograms.VirtualProjectBuilder.ExplicitProjectItem left, Microsoft.DotNet.FileBasedPrograms.VirtualProjectBuilder.ExplicitProjectItem right) -> bool
static Microsoft.DotNet.FileBasedPrograms.VirtualProjectBuilder.ExplicitProjectItem.operator ==(Microsoft.DotNet.FileBasedPrograms.VirtualProjectBuilder.ExplicitProjectItem left, Microsoft.DotNet.FileBasedPrograms.VirtualProjectBuilder.ExplicitProjectItem right) -> bool
static Microsoft.DotNet.FileBasedPrograms.VirtualProjectBuilder.GetArtifactsPath(string! entryPointFileFullPath, string? dotNetSubdirectory = null) -> string!
static Microsoft.DotNet.FileBasedPrograms.VirtualProjectBuilder.GetDefaultProperties(string? targetFramework) -> System.Collections.Generic.IEnumerable<(string! name, string! value)>!
static Microsoft.DotNet.FileBasedPrograms.VirtualProjectBuilder.GetGlobalBuildProperties() -> System.Collections.Generic.IEnumerable<System.Collections.Generic.KeyValuePair<string!, string!>>!
static Microsoft.DotNet.FileBasedPrograms.VirtualProjectBuilder.GetPropertyFromSourceFile(string! sourceFilePath, string! propertyName) -> string?
static Microsoft.DotNet.FileBasedPrograms.VirtualProjectBuilder.GetTempSubdirectory(string? dotNetSubdirectory = null) -> string!
static Microsoft.DotNet.FileBasedPrograms.VirtualProjectBuilder.GetTempSubpath(string! name, string? dotNetSubdirectory = null) -> string!
static Microsoft.DotNet.FileBasedPrograms.VirtualProjectBuilder.GetVirtualProjectPath(string! entryPointFilePath) -> string!
static Microsoft.DotNet.FileBasedPrograms.VirtualProjectBuilder.IsValidEntryPointPath(string! entryPointFilePath) -> bool
static Microsoft.DotNet.FileBasedPrograms.VirtualProjectBuilder.TryGetEntryPointFilePathFromVirtualProjectPath(string! projectPath, out string? entryPointFilePath) -> bool
static Microsoft.DotNet.FileBasedPrograms.VirtualProjectBuilder.WriteProjectFile(System.IO.TextWriter! writer, System.Collections.Immutable.ImmutableArray<Microsoft.DotNet.FileBasedPrograms.CSharpDirective!> directives, System.Collections.Generic.IEnumerable<(string! name, string! value)>! defaultProperties, bool isVirtualProject, string? entryPointFilePath = null, string? artifactsPath = null, bool includeRuntimeConfigInformation = true, string? userSecretsId = null, System.Collections.Immutable.ImmutableArray<Microsoft.DotNet.FileBasedPrograms.VirtualProjectBuilder.ExplicitProjectItem> explicitProjectItems = default(System.Collections.Immutable.ImmutableArray<Microsoft.DotNet.FileBasedPrograms.VirtualProjectBuilder.ExplicitProjectItem>)) -> void
static Microsoft.DotNet.Utilities.Extensions.ToHashSet<T>(this System.Collections.Generic.IEnumerable<T>! source, System.Collections.Generic.IEqualityComparer<T>! comparer) -> System.Collections.Generic.HashSet<T>!
static Microsoft.DotNet.Utilities.Sha256Hasher.Hash(string! text) -> string!
static Microsoft.DotNet.Utilities.Sha256Hasher.HashWithNormalizedCasing(string! text) -> string!
virtual Microsoft.DotNet.FileBasedPrograms.CSharpDirective.KindToString() -> string!
Microsoft.DotNet.FileBasedPrograms.CSharpDirective.Named
Microsoft.DotNet.FileBasedPrograms.CSharpDirective.Named.Name.get -> string!
Expand Down Expand Up @@ -171,4 +228,6 @@ static readonly Microsoft.DotNet.FileBasedPrograms.ErrorReporters.IgnoringReport
static readonly Microsoft.DotNet.FileBasedPrograms.NamedDirectiveComparer.Instance -> Microsoft.DotNet.FileBasedPrograms.NamedDirectiveComparer!
virtual Microsoft.DotNet.FileBasedPrograms.ErrorReporter.Invoke(Microsoft.CodeAnalysis.Text.SourceText! text, string! path, Microsoft.CodeAnalysis.Text.TextSpan textSpan, string! message, System.Exception? innerException = null) -> void
~override Microsoft.DotNet.FileBasedPrograms.SourceFile.Equals(object obj) -> bool
~override Microsoft.DotNet.FileBasedPrograms.SourceFile.ToString() -> string
~override Microsoft.DotNet.FileBasedPrograms.SourceFile.ToString() -> string
~override Microsoft.DotNet.FileBasedPrograms.VirtualProjectBuilder.ExplicitProjectItem.Equals(object obj) -> bool
~override Microsoft.DotNet.FileBasedPrograms.VirtualProjectBuilder.ExplicitProjectItem.ToString() -> string
Original file line number Diff line number Diff line change
Expand Up @@ -5,10 +5,11 @@
Used in dotnet cli and Roslyn Features layer
-->
<TargetFrameworks>$(VisualStudioServiceTargetFramework);netstandard2.0</TargetFrameworks>
<GenerateDocumentationFile>false</GenerateDocumentationFile>
<GenerateDocumentationFile>true</GenerateDocumentationFile>
<DebugType>none</DebugType>
<GenerateDependencyFile>false</GenerateDependencyFile>
<LangVersion>preview</LangVersion>
<RootNamespace>Microsoft.DotNet.FileBasedPrograms</RootNamespace>

<!-- NuGet -->
<IsPackable>true</IsPackable>
Expand All @@ -28,7 +29,6 @@
<ItemGroup>
<PackageReference Include="Microsoft.CodeAnalysis.Contracts" PrivateAssets="all" />
<PackageReference Include="Microsoft.CodeAnalysis.CSharp" />
<PackageReference Include="System.Text.Json" VersionOverride="$(SystemTextJsonToolsetPackageVersion)" />
<PackageReference Include="System.Text.Encoding.CodePages" VersionOverride="$(SystemTextEncodingCodePagesToolsetPackageVersion)" />
<PackageReference Include="Microsoft.Bcl.AsyncInterfaces" VersionOverride="$(MicrosoftBclAsyncInterfacesToolsetPackageVersion)" />
</ItemGroup>
Expand All @@ -55,7 +55,7 @@
</Compile>
</ItemGroup>

<Import Project="..\Microsoft.DotNet.FileBasedPrograms\Microsoft.DotNet.FileBasedPrograms.projitems" Label="Shared" />
<Import Project=".\Microsoft.DotNet.FileBasedPrograms.projitems" Label="Shared" />

<!-- Include resx and xlf files in the package (once, not per-TFM) -->
<ItemGroup>
Expand Down
Loading
Loading