public Task PreprocessPackageAsync(IDotNetLocalPackage package)
    {
        AddSourceLinkPackage(package.FolderPath);
        AddSourceLinkProjectProperties(package);

        return(Task.CompletedTask);
    }
Exemplo n.º 2
0
    private async Task UpdateProjectFileAsync(
        IDotNetLocalPackage nugetPackage,
        IRemoteSourceControlRepository repository)
    {
        var projectFileXml = XDocument.Load(nugetPackage.ProjectFilePath);

        await PrepareProjectFileForPushingAsync(
            nugetPackage,
            repository,
            projectFileXml);

        Console.WriteLine("Final project output:\n" + projectFileXml);

        await using var stream = File.OpenWrite(nugetPackage.ProjectFilePath);
        projectFileXml.Save(stream);
    }
    private void AddSourceLinkProjectProperties(IDotNetLocalPackage package)
    {
        var projectFileXml = XDocument.Load(package.ProjectFilePath);

        var publishRepositoryUrlProperty = _projectFileParser.GetOrCreatePropertyGroupElement(projectFileXml, "PublishRepositoryUrl");

        publishRepositoryUrlProperty.Value = "true";

        var embedUntrackedSourcesProperty = _projectFileParser.GetOrCreatePropertyGroupElement(projectFileXml, "EmbedUntrackedSources");

        embedUntrackedSourcesProperty.Value = "true";

        var includeSymbolsProperty = _projectFileParser.GetOrCreatePropertyGroupElement(projectFileXml, "IncludeSymbols");

        includeSymbolsProperty.Value = "true";

        var symbolPackageFormatProperty = _projectFileParser.GetOrCreatePropertyGroupElement(projectFileXml, "SymbolPackageFormat");

        symbolPackageFormatProperty.Value = "snupkg";

        using var stream = File.OpenWrite(package.ProjectFilePath);
        projectFileXml.Save(stream);
    }