首页 > 解决方案 > 我在哪里将文件放在 nuget 包中以便恢复它们?

问题描述

我正在为我们拥有的一些大型数据库模式为 dacpacs 设置 nuget 包。以下是元数据示例:

<?xml version="1.0" encoding="utf-8"?>
<package xmlns="http://schemas.microsoft.com/packaging/2011/08/nuspec.xsd">
  <metadata>
    <id>xxxx.DACPAC</id>
    <version>1.0.0</version>
    <title>xxxxDatabase dacpac</title>
    <authors>xxxxxxxxx</authors>
    <owners>xxx</owners>
    <requireLicenseAcceptance>false</requireLicenseAcceptance>
    <projectUrl>xxx-database.git</projectUrl>
    <iconUrl>http://github.com/contoso/UsefulStuff/nuget_icon.png</iconUrl>
    <description>DACPAC for xxxx Database</description>
    <releaseNotes>Initial release</releaseNotes>
    <copyright>Copyright ©2019 xxxx</copyright>
    <tags>dacpac database xxxxxx</tags>
  </metadata>
</package>

.nu​​pkg 看起来像这样 在此处输入图像描述

和这样的内容目录:

在此处输入图像描述

这工作正常。然后,我使用 ssdt 项目和骨架 c# 项目创建了一个解决方案。我使用 c# 项目来保存 dacpacs。我可以 nuget 它们,然后在 ssdt 项目中添加指向 dacpacs 的数据库引用。dacpacs 不在 git 中(我的部分目标是将它们排除在外)。

我提交回购然后将其克隆到一个空目录。目前很好。

接下来,我使用 nuget 来恢复 Visual Studio 中的包。然而,dacpacs 没有恢复!我认为那是因为它们位于包的“内容”目录中,并且据我所知,这些文件不是由 nuget 恢复的。

所以,我的问题是,将这些文件放在哪里以便恢复它们?哪个nupkg目录?内容不起作用。尝试工具无济于事。以为我应该在另一次盲目尝试之前问一下。

标签: visual-studionugetdacpac

解决方案


所以,我的问题是,将这些文件放在哪里以便恢复它们?哪个nupkg目录?内容不起作用。尝试工具无济于事。以为我应该在另一次盲目尝试之前问一下。

Nuget Restore是下载mssing包。并且其中的内容xx.nupkg只会在一个包的安装时添加到项目中。Nuget restore无法取回内容文件,这不是恢复的工作。所以它与我们将文件放在哪个目录无关,这只是一项不受支持的工作nuget restore......

解决方法:您可以使用Update-Package -reinstallinPackage Manager Console重新安装软件包。并且内容文件将被添加回项目。更多详细信息请参阅此文档。希望能帮助到你 :)


推荐阅读