2014-12-11 137 views
3

我目前正在为所有客户端代码使用打字稿的新项目。我使用了许多纯JavaScript库来让它们与我的Typescript一起工作。我使用Nuget通过以下包管理器命令来获取* .d.ts文件。恢复打字稿定义Nuget包

一个例子包管理器命令:

安装,包装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> 

我的可视s tudios项目现在已经包后,以下目录中已经安装:

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

现在我的问题是,当别人试图克隆我的仓库视觉工作室会尝试自动恢复的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) 

我已经读了一些计算器线程和的NuGet文档,但不能似乎真的找到一个解决的地方,我可以在新的回购机器上运行一个命令,它会恢复文件恢复到我在T上的配置他原来的机器。

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

+0

杰森可能有一个更好的主意。您可以通过报告问题来获得他的兴趣:https://github.com/DefinitelyTyped/NugetAutomation – basarat 2014-12-11 04:01:27

回答

3

我相信你正在经历一个共同的Nuget misconceptions。这里的问题是(自动)Nuget Restore与Install-Package不同。 Nuget Restore的目标是下载和解压软件包。它不会恢复您的项目或解决方案文件夹的内容。阅读文章以获取更多关于原因的细节有很多人对此行为感到愤怒,但这是Nuget开发人员的选择。

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

希望这会有所帮助。