使用WinSCP NuGet包(和git),我可以将WinSCP.exe添加到我的git ignore中吗?

3

C# / Visual Studio:

WinSCP NuGet包的安装过程中会将WinSCP.exe添加到我的项目根目录中。(虽然我对我的项目中出现这个文件不是很满意,但这不是我的问题)如果不需要,我宁愿不将WinSCP.exe包含在我的git仓库中 - 我可以把它添加到.ignore文件中吗(因为当NuGet包被还原时,它会被添加),还是必须保留它?

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

2个回答

3
很不幸,WinSCP NuGet包目前版本为5.7.5,其中WinSCP.exe位于Content目录中。这意味着NuGet将把该文件添加到项目中。
直接添加到项目中的文件将不会被NuGet还原。NuGet restore将还原packages目录中的文件,但不会还原项目目录中的文件。
因此,您需要将文件添加到版本控制或者有某种预构建步骤来下载NuGet包并提取文件。
但是,如果您没有使用WinSCP.exe,而只是使用WinSCP.dll,则可以在不将WinSCP.exe纳入源代码控制的情况下完成,但您需要从项目中删除它,否则将导致构建错误。

2
我相信问题在于WinSCP.dll调用WinSCP.exe来完成其工作,这就是问题所在。我认为现在它通过我的安装程序安装后,我可以将.exe移动到项目中的其他位置。只要它仍然构建到相同的位置,我认为这没问题。 - jack
是的,我不确定 WinSCP.dll 是如何工作的。NuGet 软件包描述建议它使用 WinSCP.exe。 - Matt Ward

0

WinSCP 5.12 NuGet包支持PackageReference包管理, 这应该可以解决问题。

PackageReference包管理被Visual Studio 2017支持。

前往工具 > NuGet程序包管理器 > 程序包管理器设置 > 包管理。在默认程序包管理格式中选择PackageReference。或者勾选允许在第一次安装程序包时选择格式以允许每个项目的设置。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接