Visual studio code 在VisualStudio代码中是否有使用共享项目(shproj)的方法?

Visual studio code 在VisualStudio代码中是否有使用共享项目(shproj)的方法?,visual-studio-code,shared-project,Visual Studio Code,Shared Project,嗨 在.NETCore2.0Web项目和.NET4.7WinForms项目之间共享代码似乎是个好主意。 我在里面有很多扩展,还有两个项目都使用的WebAPI客户端代码 在Visual Studio 2017中一切正常 然而,在路上,我使用的是带有Visual Studio代码的MacBook电脑,它根本无法识别Shroj。我还尝试了使用新的多工作区的Insider版本,但这似乎只适用于实际项目(csproj)。 我知道有Visual Studio for Mac,但它非常庞大,远远超出了我在路

嗨

在.NETCore2.0Web项目和.NET4.7WinForms项目之间共享代码似乎是个好主意。 我在里面有很多扩展,还有两个项目都使用的WebAPI客户端代码

在Visual Studio 2017中一切正常

然而,在路上,我使用的是带有Visual Studio代码的MacBook电脑,它根本无法识别Shroj。我还尝试了使用新的多工作区的Insider版本,但这似乎只适用于实际项目(csproj)。
我知道有Visual Studio for Mac,但它非常庞大,远远超出了我在路上的需要,所以我想避免使用它

所以,我的问题是-有没有一种方法可以将VisualStudio代码用于使用共享项目(shproj)的项目? 我想在VSCode中运行/调试这样的项目

如果不是,在某处创建特性请求是否有意义?我的意思是,共享项目是为跨平台代码共享而设计的,而VSCode是一个出色的跨平台编辑器,所以它很有意义。 或者这根本不是VSCode的一部分,而是某种扩展(比如OmniSharp)

谢谢, 马里奥(Mario)

至少现在(2021年),它似乎运行良好

TLDR;使用Visual Studio(2019)创建一个新项目,并将“共享项目”添加到该项目/解决方案中。然后在Visual Studio代码中打开项目文件夹,并将共享项目文件夹添加到工作区。在VS代码中,向共享项目添加一个新类,并调整*.projitems文件以将新类包括在编译过程中。在VS代码和VS中运行项目,以验证一切是否按预期工作

以下是我使用的步骤。看起来很多,但是设置这个基本示例只需要大约10分钟

  • 开放式Visual Studio(2019年)

  • 创建一个新的“控制台应用(.NET Core)”,给它一个名称和位置,然后选择
    “将解决方案和项目放在同一目录中”

  • 创建项目后,您应该在“解决方案资源管理器”中有一个包含新控制台应用程序项目的新解决方案

  • 右键单击解决方案并选择
    “添加”>“新建项目…”

  • 选择并添加新的“共享项目”

  • 将新类添加到共享项目中。在“解决方案资源管理器”中,右键单击共享项目并选择
    “添加”>“新建项…”
    ,然后选择“类”模板

  • 在“控制台应用程序”中,右键单击控制台应用程序项目,添加对共享项目的引用,然后选择
    “添加”>“共享项目引用…”
    ,并选择列出的共享项目(*.shproj)

  • 在控制台应用程序项目中使用共享项目的新类

  • 运行控制台应用程序以检查它是否成功构建和使用共享类

  • 关闭Visual Studio(2019年)

  • 打开VisualStudio代码

  • 选择
    “文件”>“打开文件夹”
    ,然后选择控制台应用程序所在的文件夹

  • 注意:如果VS代码显示消息“需要构建的资产……缺少”,则选择“是”

  • 选择
    “文件”>“将文件夹添加到工作区…”
    ,然后选择共享项目所在的文件夹

  • 选择
    “文件”>“将工作区另存为…”
    并将文件保存到Console应用程序的项目文件夹中

  • 在VS代码中打开一个新的集成终端(在菜单“终端”>“新终端”)并确保当前工作目录是控制台应用程序的文件夹。然后键入
    “dotnet clean&&dotnet run”
    以清理、生成和运行解决方案

  • 假设我们现在想从VisualStudio代码向共享项目添加一个新类,我们必须做一些额外的工作,这通常是VisualStudio(2019)在添加新类时为我们做的

  • 在VS代码中,右键单击共享类所在的文件夹并添加新文件。给它一个扩展名为.cs的名称,并根据文件添加相应的代码,使其成为有效的类文件

  • 打开*.projitems文件,找到已经添加了第一个类文件的部分。应该是这样的:

  • 
    
  • 现在,将新类文件添加到此ItemGroup部分,如下所示
  • 
    
  • 在控制台应用程序中使用新类,保存所有文件并在集成终端中键入
    “dotnet run”
    。 检查所有内容是否按预期构建和运行
  • 如果您注意到它已成功构建,但VS代码显示一些错误,如“类型或命名空间名称'Class2'在命名空间'SharedProject1'中不存在”,请重新启动VS代码。重新启动后,它应该能够检测到预期的一切

  • 双击*.sln文件关闭VS代码并打开VS(2019)

  • 构建并运行项目,以验证所有变更是否与VS(2019)兼容

  • <ItemGroup>
        <Compile Include="$(MSBuildThisFileDirectory)SharedClass1.cs" />
    </ItemGroup>
    
    <ItemGroup>
        <Compile Include="$(MSBuildThisFileDirectory)SharedClass1.cs" />
        <Compile Include="$(MSBuildThisFileDirectory)SharedClass2.cs" />
    </ItemGroup>