问题标签 [paket]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
435 浏览

f# - 使用 VSCode 和 Paket 将文件添加到 `.fsproj`

我正在使用 VSCode 和 Paket 将库从 Nuget 添加到 F# 项目/.fsproj文件。

从VSCode,我使用ctrl+shift+p并使用命令Paket: Add Nuget Package (to current project)并输入

不幸的是,Paket 失败并出现以下错误:

我知道这FsVerbalExpressions在 Nuget 上可用。我需要旧版本,因为我正在处理的项目是针对的,.NET 4.5而新版本的FsVerbalExpressions仅适用于.NET 4.6.1.

0 投票
1 回答
203 浏览

f# - VSCode、Paket 和编译器错误

我使用 VSCode 和 Paket,但不了解后端的所有内容如何相互连接。

今天早上我遇到了一个问题,我的paket.dependencies文件是正确的,但是当我尝试在.FS文件中打开这些库时,我得到了编译器错误。

我已经包含了文件夹/目录结构的屏幕截图以及Paket: Install.

在此处输入图像描述

任何导致编译器错误的想法

RawData.fs文件中?的错误FSharp.Configuration是相似的。我不知道为什么它们不可用;它们都已安装并在 Paket 依赖项文件中并已安装。

0 投票
2 回答
512 浏览

.net - 离线使用 paket

是否可以使用与Nuget存储库没有连接的paket?我们有我们的nuget存储库,我们在其中存储所有必要的库。我们使用paket来获取它。当我们在公司网络下工作或使用 vpn 时,一切正常。但是paket无法到达我们网络之外的nuget存储库。毫无疑问,这种行为是意料之中的。

同时我注意到paket 首先尝试从本地nuget缓存 (%userprofile%.nuget) 中获取包。如果没有与原始nuget存储库的连接,则所需的行为是直接使用nuget本地缓存,并仅抛出有关它的警告,而不是错误(仅当缓存中没有所需的包时才抛出错误)。是否有可能或(尚未)提供此类功能?据我所知,如果Nuget可以从本地缓存中获取包而无需连接到存储库,它就不会崩溃构建。谢谢

UPD如何禁用 nuget 机器范围的缓存?——那不是我想要的。Nuget本身工作正常,问题是关于paket.exe

0 投票
1 回答
1551 浏览

c# - 为什么 Paket 安装的包比 Nuget 多?

为什么 Paket 默认安装比 Nuget 更多的包?这是正常行为还是我做错了什么?

我遵循了入门指南(但在paket.powershell我安装的帮助下choco install paket.powershell):

  • 我做了一个新的 WPF 项目
  • PaketPaket-Init命令初始化
  • 添加nuget reactiveuipaket.dependencies文件
  • 执行Paket-Install命令下载包

结果,我的packages文件夹中有以下内容:

从 VS 包管理器控制台使用标准的基于 nuget 时Install-Package reactiveui,我有:

第一个结果非常分散所有这些依赖项。还是它应该是这样的?我觉得我错过了一些额外的限制/限制参数......

0 投票
1 回答
438 浏览

f# - Paket框架限制差异

我已将Argu添加到我的项目中,并且与它一起下载了大约 700MB 的包。这与Paket 安装额外的软件包有关,但是我想了解使用 >= 或仅使用 framework:net46 指定框架限制的细微差别。

在我第一次尝试时,我只是将 Argu 添加到paket.dependencies文件中:

nuget Argu

由于这导致下载了近 GB 的软件包,我问:

.\.paket\paket.exe why nuget System.Threading.Thread

帕克特回答说:

然后我在 paket.dependencies 中添加了以下限制:

nuget Argu framework: >= net46

然而,这导致下载相同的包。

最后我做到了:

nuget Argu framework: net46

而这个特定的限制确实删除了所有不必要的包:

但是,我的所有其他依赖项都是这样指定的(主要是结果,但并非总是如此,因为我正在对原始问题进行故障排除):

所以我的问题Argu在某种程度上是特殊的,或者我应该始终使用框架限制并专门针对 46(或 45)而不是 >=。

0 投票
0 回答
92 浏览

teamcity - TeamCity,.net 使用 paket / 不兼容的代理构建

如何让 TC 获取 paket 依赖项?

我刚刚安装了 TC 并创建了一个 CI 版本来构建我的 VS 2015 .Net 解决方案。

我签入了一个空的解决方案,添加了 TC 构建步骤(构建 - Visual Studio sln)并构建。到目前为止,一切都很好。

然后使用 paket 添加了一个项目并将其签入。在 TC 中添加了一个调用 paket restore 的命令行步骤。

然而,我被告知 TC 无法构建,因为代理不兼容。

如何使其兼容/以 TC 可以处理的方式使用 paket?

BR,安德斯

0 投票
1 回答
517 浏览

f# - 如何在 paket.references 中引用 git 存储库中的文件?

我的 paket.dependencies 文件中有一个 TFS git 存储库:

git http://mytfs1server:8080/tfs/2015Projects/_git/DEV-Commons

使用该存储库,有一个文件“src/Tools.fs”

在 paket.references 文件中,如何告诉 Paket 添加对该 git 存储库中文件的引用,以便 Paket 可以将其添加到 fsproj 文件中?

0 投票
0 回答
94 浏览

f# - 假 FscHelper 和 Paket 参考

我开始尝试 F#、FAKE 和 Paket。我试图了解我应该如何管理对通过 Paket 安装的 DLL 的引用。

目前我的 build.fsx 中有类似的东西

还有一个等效netstandard1.6路径,但如果使用它,我的项目不会编译。我想我模糊地理解为什么会这样 - 但我认为编译项目的其他人可能正在使用标准 .NET,并且当前配置对他们来说会失败。

这表明在这里硬编码路径(尽管相对于项目根目录)不是正确的方法。

应该如何在构建脚本中设置这些引用以使项目具有可移植性?

0 投票
3 回答
376 浏览

java - Java 开发人员需要帮助了解 F# 中的 .NET 构建过程

我的大部分开发都是在 Java 中进行的,在那里我习惯于拥有一个运行时、一个编译器和一个构建工具。所以现在我正在尝试进入 .NET 世界,特别是使用 VSCode、Ionide 插件和 F#,来构建一个 F# 程序。我很难理解与 Java 构建过程的直接比较。到目前为止,这是我的粗略理解:

  • JRE -> .NET 运行时?
  • JDK 工具 -> Microsoft Build Tools 2015 其中包括 F# 编译器和其他工具?
  • Paket -> 行家?
  • FAKE -> <build>pom.xml 中的 Maven 部分?
  • paket.dependencies 和 paket.references -> <dependencies>pom.xml 中的 maven 部分?
  • *.*proj 文件 -> ???

我真的对 *proj 文件感到困惑。我认为这与 MSBuild 有关。但我很困惑,因为我认为 FAKE 是 MSBuild 的替代品,但我见过的一些 FAKE 示例引用了这个文件并将其传递给 MSBuildRelease 任务。

另外,为什么 paket 需要依赖项引用文件?

我希望有人可以确认、澄清、添加或任何上述内容,以达到我迄今为止的理解水平。非常感激!

编辑:

我知道这个问题很复杂,而且不是很具体。感谢大家抽出宝贵的时间来梳理它并回答你能回答的问题。我很感激。

0 投票
2 回答
250 浏览

.net - 为什么 Paket 需要三个文件来支持依赖管理?

我是一名使用 Maven 和 Gradle 的 Java 开发人员,现在进入 .NET 并试图了解 Paket。据我了解,Paket 有三个不同的文件支持 .NET 解决方案的依赖管理:

  1. 一个根 paket.dependencies 文件,您可以在其中列出您的直接依赖项和版本。
  2. 一个项目特定的 paket.references 文件,其中列出了在 paket.dependencies 中列出的依赖项的子集。
  3. 一个 paket.lock 自动生成的文件,其中列出了所有直接和传递依赖项及其版本。

使用 Maven 和 Gradle,我习惯于在一个文件中指定我的依赖项。我可以指定确切的版本,并确保后续下载的依赖项是相同的。为什么Paket需要三个文件?我希望每个项目中的 paket.references 文件就足够了。在 .NET 世界中,在如何管理依赖项方面是否存在一些问题或怪癖,我不知道需要这三个文件?