【问题标题】:Using the WinSCP NuGet Package (and git), can I add WinSCP.exe to my git ignore?使用 WinSCP NuGet 包(和 git),我可以将 WinSCP.exe 添加到我的 git 忽略吗?
【发布时间】:2018-01-18 18:35:03
【问题描述】:

C#/Visual Studio:

WinSCP NuGet 包的部分安装包括将 WinSCP.exe 添加到我的项目根目录。 (虽然我对项目中的那个位置并不完全满意,但这不是我的问题)。如果我不需要,我宁愿不必在我的 git 存储库中包含 WinSCP.exe - 我可以将它添加到 .ignore 中(因为这将在 NuGet 包恢复时添加)或者是否有必要保留?

(总结 - 如果我使用 WinSCP nuget 包,我可以安全地告诉 git 忽略 WinSCP.exe 吗?)

【问题讨论】:

    标签: git nuget visual-studio-2015 winscp winscp-net


    【解决方案1】:

    不幸的是,当前版本为 5.7.5 的 WinSCP NuGet 包在 Content 目录中包含 WinSCP.exe。这意味着 NuGet 会将文件添加到项目中。

    直接添加到项目中的文件不会被 NuGet 还原。 NuGet restore 将恢复包目录中的文件,但不会恢复项目目录中的文件。

    因此,您需要将文件添加到版本控制中,或者进行某种预构建步骤来下载 NuGet 包并提取文件。

    但是,如果您不使用 WinSCP.exe,而只是使用 WinSCP.dll,那么您可以在源代码控制中不使用 WinSCP.exe 的情况下逃脱,但是您需要将其从项目中删除,否则您将获得构建错误。

    【讨论】:

    • 我很确定问题是 WinSCP.dll 正在调用 WinSCP.exe 来完成它的工作,这就是问题所在。我认为现在它是通过我的安装安装的,我可以将 .exe 移动到另一个位置,仍然在我的项目中。只要它仍然构建到相同的位置,我认为就可以了。
    • 是的,我不确定 WinSCP.dll 是如何工作的。 NuGet 包说明表明它正在使用 WinSCP.exe。
    【解决方案2】:

    WinSCP 5.12 NuGet 包supports PackageReference package management,应该可以解决问题。

    PackageReference package management 受 Visual Studio 2017 支持。

    转到工具> NuGet 包管理器> 包管理器设置> 包管理。在默认包管理格式中选择PackageReference。或者勾选Allow format selection on first package install以允许按项目设置。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-01-26
      • 2011-03-18
      • 1970-01-01
      • 2020-12-28
      • 2015-09-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多