【问题标题】:Is it possible to use code from a Web project in C# Interactive?是否可以在 C# Interactive 中使用 Web 项目中的代码?
【发布时间】:2017-11-23 14:04:32
【问题描述】:

我想在 Visual Studio 2017 上使用 C# Interactive 在我创建的使用 ASP.NET Core 的 .NET Framework 4.6.1 项目中的类上运行一些方法。在传统的类库项目中,我可以右键单击该项目并选择 Initialize Interactive with Project 以在 C# 交互窗口中使用我的项目中的类。

右键单击我的 ASP.NET Core 项目,我没有这个选项。有没有办法在 C# Interactive 中使用这个项目中的类?

如果重要的话,我想在 C# Interactive 中使用的类不直接与 ASP.NET Core 交互;它们只是带有方法的数据容器。可能可以将它们移动到解决方案中的单独类库项目,但我想知道是否可以先将它们保留在 ASP.NET Core 项目中。

我的.csproj

<Project Sdk="Microsoft.NET.Sdk.Web">

  <PropertyGroup>
    <TargetFramework>net461</TargetFramework>
  </PropertyGroup>

  <ItemGroup>
    <Folder Include="wwwroot\" />
  </ItemGroup>

  <ItemGroup>
    <PackageReference Include="EntityFramework" Version="6.1.3" />
    <PackageReference Include="Microsoft.ApplicationInsights.AspNetCore" Version="2.0.0" />
    <PackageReference Include="Microsoft.AspNet.Mvc" Version="5.2.3" />
    <PackageReference Include="Microsoft.AspNet.Razor" Version="3.2.3" />
    <PackageReference Include="Microsoft.AspNetCore" Version="1.1.2" />
    <PackageReference Include="Microsoft.AspNetCore.StaticFiles" Version="1.0.0" />
    <PackageReference Include="RazorEngine" Version="3.10.0" />
  </ItemGroup>

</Project>

【问题讨论】:

标签: c# asp.net visual-studio visual-studio-2017 c#-interactive


【解决方案1】:

只需打开 C# 交互窗口并输入

#r "full path to dll\exe with your asp.net core project"

然后你就可以像往常一样使用你的课程了。

请注意,如果您的项目以 .NET Core 为目标 - 它可能无法按预期工作(或根本无法工作),因为据我所知 - C# 交互式当前在完整的 .NET Framework 下运行。但是,在您的情况下,您的项目也在完整的 .NET (&lt;TargetFramework&gt;net461&lt;/TargetFramework&gt;) 下,所以您应该没问题。

【讨论】:

  • 太棒了,谢谢!我知道#r 接受 DLL,但我从来不知道它可以与 EXE 一起使用。我需要等待 18 小时才能奖励赏金,但我会在那时奖励。 (如果我忘记了@我!)
  • @AaronChristiansen 也许你当时还不知道你也可以在常规 .net 项目中引用 exe 文件(当然,如果那个 .exe 是 .net 可执行文件)。
  • 不,我没有 - 这太酷了!我认为必须使用 Debug 而不是 Release 来构建它们以维护它们的符号并允许互操作性,我是否正确?
  • @AaronChristiansen exe 与 dll 基本相同,但有一个入口点方法。因此,无论您引用 exe 还是 dll,都没有区别 - 您可以以相同的方式使用引用库中的所有内容(至少在 .NET 中)
  • 这真的很有趣,谢谢。我应该了解更多关于低级 Windows 的知识!
猜你喜欢
  • 2011-02-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-01-02
  • 2021-04-17
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多