2014-01-07 65 views
2

我们在ASP.net/MVC项目上使用FluentMigrator(NuGet程序包)来维护对SQL Server的数据库更改。NuGet程序包依赖关系和构建/部署服务器

什么是“正确”的方式来分发NuGet包与其他构建工件以供部署期间使用?我只需要“包”文件夹?

我希望有一个响应,而不是“使用包管理器并在PROD上安装Nuget包”。

我不想在部署期间从本地或非本地来源获取软件包,我想使用我的编译代码包含正确的软件包。

回答

2

正确的方法是在项目building之前拉下包,然后假设您的项目引用程序集以使Copy Local为true,它将包含在构建输出中,应该将其存储为工件在您的CI工具中。

在构建/部署过程中,您绝对不应该做与NuGet相关的任何事情。

+0

我们使用Fluent Migrator,除了为构建引用的dll(即CopyLocal = True)之外,我们还使用包中的exe文件(以及它所依赖的文件)来推动我们的数据库更改。为了更清楚地说明,我们对包有一个构建时依赖性,但我们也对包有一个部署时间依赖性。我不想在部署过程中拉下软件包,我想将其与我的应用程序分发。 – DonBecker

+0

您可以将.exe文件的生成操作设置为VS属性窗口中的内容吗?这样它将被视为一个独立的文件并包含在输出中。您也可以将其作为资源嵌入,在运行时将其写入磁盘 - 取决于您需要的是什么。 –