【问题标题】:Is there a way to use shared projects (shproj) in Visual Studio Code?有没有办法在 Visual Studio Code 中使用共享项目(shproj)?
【发布时间】:2018-01-23 19:54:19
【问题描述】:

你好,

共享项目似乎是在 .NET Core 2.0 Web 项目和 .NET 4.7 WinForms 项目之间共享代码的好主意。 我里面有一堆扩展以及两个项目都使用的 web api 客户端代码。

在 Visual Studio 2017 中一切正常。

但是,在路上我使用带有 Visual Studio Code 的 MacBook 计算机,它无法以任何方式识别 shproj。我还尝试了带有新的多个工作区的 Insider 版本,但这似乎也只适用于实际项目 (csproj)。
我知道有适用于 Mac 的 Visual Studio,但它非常庞大,远远超出了我在路上的需求,所以我想避免它。

所以,我的问题是 - 有没有办法将 Visual Studio Code 用于使用共享项目 (shproj) 的项目? 我想在 VSCode 中运行/调试这样的项目。

如果没有,在某处创建功能请求是否有意义?我的意思是,共享项目是为跨平台代码共享而设计的,而 VSCode 是出色的跨平台编辑器,因此很有意义。 或者这根本不是 VSCode 的一部分,而是一些扩展(如 OmniSharp)?

谢谢, 马里奥

【问题讨论】:

    标签: visual-studio-code shared-project


    【解决方案1】:

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

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

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

    1. 打开 Visual Studio (2019)

    2. 创建一个新的“控制台应用程序(.NET Core)”,为其命名和位置,然后选择"Place solution and project in the same directory"

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

    4. 右键单击解决方案并选择"Add" > "New Project..."

    5. 选择并添加一个新的“共享项目”

    6. 为您的共享项目添加一个新类。在“解决方案资源管理器”中右键单击共享项目并选择"Add" > "New Item..." 并选择“类”模板。

    7. 在“控制台应用程序”中,通过右键单击控制台应用程序项目添加对共享项目的引用,然后选择 "Add" > "Shared Project Reference..." 并选择列出的共享项目 (*.shproj)

    8. 在 Console Application 项目中使用 Shared Project 的新类

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

    10. 关闭 Visual Studio (2019)

    11. 打开 Visual Studio 代码

    12. 选择"File" > "Open Folder"并选择放置控制台应用程序的文件夹。

    注意:如果 VS Code 显示消息“需要构建的资产和...丢失”,则选择“是”。

    1. 选择"File" > "Add Folder to Workspace...",选择共享项目所在的文件夹。

    2. 选择"File" > "Save Workspace As..."并将文件保存到控制台应用程序的项目文件夹中。

    3. 在 VS Code 中打开一个新的集成终端(在菜单 "Terminal" > "New Terminal" 中)并确保当前工作目录是控制台应用程序的文件夹。然后输入"dotnet clean && dotnet run" 来清理、构建和运行解决方案。

    假设我们现在想从 Visual Studio Code 向共享项目添加一个新类,我们必须做一些额外的工作,通常 Visual Studio (2019) 在添加新类时会为我们做这些工作。

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

    2. 打开 *.projiitems 文件并找到已添加第一个类文件的部分。它应该是这样的:

    <ItemGroup>
        <Compile Include="$(MSBuildThisFileDirectory)SharedClass1.cs" />
    </ItemGroup>
    
    1. 现在像这样将新的类文件添加到这个 ItemGroup 部分
    <ItemGroup>
        <Compile Include="$(MSBuildThisFileDirectory)SharedClass1.cs" />
        <Compile Include="$(MSBuildThisFileDirectory)SharedClass2.cs" />
    </ItemGroup>
    
    1. 使用控制台应用程序中的新类,保存所有文件并在集成终端中键入"dotnet run"。 检查一切是否按预期构建和运行。

    如果您注意到它构建成功,但 VS Code 显示一些错误,例如“名称空间 'SharedProject1' 中不存在类型或名称空间名称 'Class2'”,请重新启动 VS Code。重新启动后,它应该能够按预期检测到所有内容。

    1. 通过双击 *.sln 文件关闭 VS Code 并打开 VS (2019)。

    2. 构建并运行项目以验证所有更改是否与 VS (2019) 兼容。

    【讨论】:

      猜你喜欢
      • 2018-08-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-03-17
      • 1970-01-01
      • 2018-07-13
      • 2014-08-09
      • 1970-01-01
      相关资源
      最近更新 更多