File: ProjectSystemShim\CSharpProjectShim.ICSInputSet.cs
Web Access
Project: src\src\VisualStudio\CSharp\Impl\Microsoft.VisualStudio.LanguageServices.CSharp_klvi2agp_wpftmp.csproj (Microsoft.VisualStudio.LanguageServices.CSharp)
// Licensed to the .NET Foundation under one or more agreements.
// The .NET Foundation licenses this file to you under the MIT license.
// See the LICENSE file in the project root for more information.
 
#nullable disable
 
using System;
using System.IO;
using Microsoft.VisualStudio.LanguageServices.CSharp.ProjectSystemShim.Interop;
using Roslyn.Utilities;
 
namespace Microsoft.VisualStudio.LanguageServices.CSharp.ProjectSystemShim;
 
internal partial class CSharpProjectShim : ICSInputSet
{
    public ICSCompiler GetCompiler()
        => throw new NotImplementedException();
 
    public void AddSourceFile(string filename)
    {
        // Nothing to do here. We watch addition/removal of source files via the ICSharpProjectSite methods.
    }
 
    public void RemoveSourceFile(string filename)
    {
        // Nothing to do here. We watch addition/removal of source files via the ICSharpProjectSite methods.
    }
 
    public void RemoveAllSourceFiles()
        => throw new NotImplementedException();
 
    public void AddResourceFile(string filename, string ident, bool embed, bool vis)
        => throw new NotImplementedException();
 
    public void RemoveResourceFile(string filename, string ident, bool embed, bool vis)
        => throw new NotImplementedException();
 
    public void SetWin32Resource(string filename)
    {
        // This file is used only during emit. Since we no longer use our in-proc workspace to emit, we can ignore this value.
    }
 
    public void SetOutputFileName(string filename)
    {
        // Some projects like web projects give us just a filename; those aren't really useful (they're just filler) so we'll ignore them for purposes of tracking the path
        if (PathUtilities.IsAbsolute(filename))
        {
            ProjectSystemProject.CompilationOutputAssemblyFilePath = filename;
        }
 
        if (filename != null)
        {
            ProjectSystemProject.AssemblyName = Path.GetFileNameWithoutExtension(filename);
        }
 
        RefreshBinOutputPath();
    }
 
    public void SetOutputFileType(OutputFileType fileType)
        => ProjectSystemProjectOptionsProcessor.SetOutputFileType(fileType);
 
    public void SetImageBase(uint imageBase)
    {
        // This option is used only during emit. Since we no longer use our in-proc workspace to emit, we can ignore this value.
    }
 
    public void SetMainClass(string fullyQualifiedClassName)
        => ProjectSystemProjectOptionsProcessor.SetMainTypeName(fullyQualifiedClassName);
 
    public void SetWin32Icon(string iconFileName)
    {
        // This option is used only during emit. Since we no longer use our in-proc workspace to emit, we can ignore this value.
    }
 
    public void SetFileAlignment(uint align)
    {
        // This option is used only during emit. Since we no longer use our in-proc workspace to emit, we can ignore this value.
    }
 
    public void SetImageBase2(ulong imageBase)
    {
        // This option is used only during emit. Since we no longer use our in-proc workspace to emit, we can ignore this value.
    }
 
    public void SetPdbFileName(string filename)
    {
        // This option is used only during emit. Since we no longer use our in-proc workspace to emit, we can ignore this value.
    }
 
    public string GetWin32Resource()
        => throw new NotImplementedException();
 
    public void SetWin32Manifest(string manifestFileName)
    {
        // This option is used only during emit. Since we no longer use our in-proc workspace to emit, we can ignore this value.
    }
}