恢复Typescript定义Nuget包

时间:2014-12-11 03:17:10

标签: visual-studio-2013 typescript nuget

我目前正在开发一个新项目,它将Typescript用于所有客户端代码。我使用了许多纯JavaScript库来使用我的Typescript。我使用Nuget通过以下包管理器命令拉入* .d.ts文件。

示例包管理器命令:

  

Install-Package angularjs.TypeScript.DefinitelyTyped -Version 2.0.2

这可以解决问题,在安装我的所有Nuget包之后,在项目目录中创建一个名为 packages.config 的文件:

<?xml version="1.0" encoding="utf-8"?>
<packages>
  <package id="angularjs.TypeScript.DefinitelyTyped" version="2.0.2" targetFramework="net45" />
  <package id="angular-translate.TypeScript.DefinitelyTyped" version="0.9.0" targetFramework="net45" />
  <package id="bootstrap.TypeScript.DefinitelyTyped" version="0.0.9" targetFramework="net45" />
  <package id="jquery.TypeScript.DefinitelyTyped" version="1.4.0" targetFramework="net45" />
</packages>

我的Visual Studios项目现在在安装软件包后有以下目录:

Scripts\
    typings\
        angularjs\         (contains relivant files)
        angular-translate\ (contains relivant files)
        bootstrap\         (contains relivant files)
        jquery\            (contains relivant files)

现在我的问题是当其他人试图克隆我的存储库时,visual studio会尝试自动恢复Nuget软件包,但会按以下方式安装它们:

Packages\
   angularjs.TypeScript.DefinitelyTyped.2.0.2\
       Content\
           Scripts\
               typings\
                   angularjs\ (contains relivant files)

   angular-translate.TypeScript.DefinitelyTyped.0.9.0\
       Content\
           Scripts\
               typings\
                   angularjs\ (contains relivant files)

   bootstrap.TypeScript.DefinitelyTyped.0.0.9\
       Content\
           Scripts\
               typings\
                   angularjs\ (contains relivant files)

   jquery.TypeScript.DefinitelyTyped.1.4.0\
       Content\
           Scripts\
               typings\
                   angularjs\ (contains relivant files)

我已阅读过多个stackoverflow线程和Nuget文档,但似乎无法找到解决方案,我可以在新的repo机器上运行命令,它会将文件恢复到我以前的配置在原来的机器上。

理想情况下,我希望避免编写* .bat文件,将文件结构转换为我想要的方式。

1 个答案:

答案 0 :(得分:3)

我相信你遇到了一个常见的Nuget misconceptions。这里的问题是(自动)Nuget Restore与Install-Package不同。 Nuget Restore的目标是下载和解压缩包。它不会还原项目或解决方案文件夹的内容。阅读文章了解更多有关原因的细节。有很多人对这种行为感到生气,但这是Nuget开发人员的选择。

this issue的评论中提到了许多解决方案。我个人使用Install-Package MSBuild.NugetContentRestore这就是我解决内容文件问题所需的全部内容。

希望这有帮助。