【问题标题】:How to create NuGet package from class library projects and precompiled views?如何从类库项目和预编译视图创建 NuGet 包?
【发布时间】:2019-04-02 11:58:01
【问题描述】:

我在 Visual Studio 2017 上使用 MVC 5。我的 VS 解决方案目前看起来像这样

  • 解决方案
    • MVC 应用程序
    • 组件(类库)
    • 自定义视图引擎(类库)

现在我已经在组件库中创建了模型。 这些模型用于 MVC 应用程序视图。 我已将 MVC 应用程序配置为在发布期间预编译视图,并使用“将所有输出合并到单个程序集”并标记为“视为库组件”。

Components 项目被引用到 MVC 应用程序(在视图中使用它)。自定义视图引擎还引用到 MVC 应用程序(以标记(在 AssemblyInfo 中)此库包含自定义视图)。

当我发布 MVC 应用程序时,它会将所有视图编译到一个库中。

但我想从组件项目和视图创建 NuGet 包。我该怎么做?是否有任何选项可以自动执行此操作?

【问题讨论】:

  • 您使用的是 Azure DevOps 吗?您可以创建一个构建,每次创建拉取请求时都会创建一个 nuget 包
  • @vhr 不,我没有使用 Azure DevOps
  • 您可以使用 Visual Studio 来完成,如下所示:c-sharpcorner.com/article/…
  • 不确定你想在哪里使用它,但你可以跳过发布到 nuget 并直接使用/引用你创建的包
  • 我只使用发布工具来预编译视图。不安装第三方库还有其他可能吗?

标签: c# .net asp.net-mvc asp.net-mvc-5 nuget


【解决方案1】:

虽然 NuGet 具有打包项目的功能,但它使用编译器输出,而不是发布者输出,并自动添加所有 MSBuild Content 类型,这在您的情况下可能不需要(我不知道预编译视图如何工作)。

无论如何,您始终可以创建一个.nuspec file 并让它打包发布命令的输出。在文档页面的末尾有 several complete examplesnuspec 文件。

自从我从事 ASP.NET 项目以来已经有很长时间了,但我的记忆是 MVC 只会自动从“主”程序集中检测 MVC 控制器和 razor 视图。如果您在项目引用或 nuget 包中有其他控制器或视图,则可能需要注册它们。

【讨论】:

    猜你喜欢
    • 2019-03-22
    • 2022-11-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-04
    • 2014-12-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多