将多个Web项目打包到单个Nuget包中

我照顾一个有3个项目的框架:

Front End UI
    \bin
        \my front end dlls
    \images
        \theimages.png

API
    \bin
        \my API dlls

Database Migrations
    \bin
        \my migration dlls

我在IIS中的设置/结构如下:

Front End UI (Top level IIS Site)
    \bin
        \my front end dlls
        \Database Migrations
            \my migration dlls
    \images
        \theimages.png

    \API (Converted to an App in IIS)
        \bin
            \my API dlls

我希望将nuget包输出到此结构。

用户将在Visual Studio中创建一个新的空白项目,并添加此nuget包。这将使它们具有上面IIS中所示的结构。他们只会向该新项目中添加几个配置文件。

然后,他们将在IIS中创建一个新站点,将其指向Front End,然后将API文件夹转换为应用程序。

应该是一个非常简单的设置。

我的问题是我可以创建一个nuspec文件,并将API和Migrator文件手动包括到content\API\bincontent\bin\Database Migrators中,但是问题是默认的.gitignore文件将排除那些子bin文件夹默认情况下,这些dll将不会被提交。

我真的想避免让开发人员调整.gitignore文件,以在可能的情况下强制包含API\binDatabase Migrators\bin文件夹。

有没有更好的方法来做我在这里做的事?

干杯

z86631075 回答:将多个Web项目打包到单个Nuget包中

  

有没有更好的方法来做我在这里做的事?

恐怕答案是否定的,默认情况下,如果您将解决方案添加到Visual Studio中的源代码管理中,VS中的git组件将在.gitignore中使用默认内容{{ 1}}。 (至少对于VS2017 + VS2019)

因此,它始终忽略解决方案目录中的所有solution directory[Bb]in/目录。据我所知,如果要将子bin文件夹包含到源代码管理中,则必须必须修改bin/文件。

此外::老实说,我不确定为什么需要提交dll,我想您是将程序集从三个项目的输出bin文件夹复制到{{1} }和Bin/,在这种情况下,无需将该子bin文件夹添加到源代码管理中。

除了使用.gitignorecontent\bin\Database Migrators外,您还可以考虑使用using targets file when creating nuget package。您可以在该文件中指定许多操作,并且该文件将在构建使用该程序包的项目时执行。因此,您可能会定义copy task,以便将程序集从nuget复制到项目中要使用该程序包的位置。但这可能要复杂得多,我认为这不是您想要的更好的方法:(

本文链接:https://www.f2er.com/3155812.html

大家都在问