C# Windows 使用 WinSCP 程序集不匹配作为未设置为对象实例的对象引用的服务
C# Windows Services using WinSCP assembly mismatch as object reference not set to an instance of an object
我正在编写代码以通过 WinSCP 将文件上传到 sftp 服务器。
除了我开始将 WinSCP 包含到代码中时,我的代码中的其他所有内容都有效。程序集设置失败,因为它显示错误,其中对象引用未设置为对象的实例。
这是 运行 Windows 使用 WinSCP .net 参考中包含的 VS 2010 的服务。
下面是设置程序集的代码,我无法使用 NuGet,因为它需要更高版本的 Visual Studio。
所以我必须创建这个我从 WinSCP 网站本身获得的程序集,但是我不明白我在这里缺少什么。
try
{
Assembly executingAssembly = Assembly.GetExecutingAssembly();
string resName = executingAssembly.GetName().Name + "." + "WinSCP.exe";
using (Stream resource = Assembly.GetExecutingAssembly().GetManifestResourceStream(resName))
using (Stream file = new FileStream(executablePath, FileMode.Create, FileAccess.Write))
{
resource.CopyTo(file);
}
}
catch (System.Exception ex)
{
WriteToFile("Cant setup assembly : " + ex.Message);
结果应该是,当程序集成功创建时,上传会话将能够完成,因为上传会话我收到错误消息 "The version of C:\Windows\TEMP\WinSCP.tmp311D.exe () does not match version of this assembly somedir\WinSCPnet.DLL (5.15.2.0)."
小小的帮助会很有帮助。
我发现了问题。显然,我已经有了程序集,这就是为什么错误提到我有错误的程序集版本。但是,它无法匹配的主要原因是因为
- 临时 WinSCP 是在我的程序无权访问的文件夹中创建的。
- 我复制粘贴了 WinSCP exe,而不是在 VS 中通过 "Add Item" 添加。
- 然后我将可执行路径硬编码到 WinSCP.exe 以修复查找错误文件夹的程序集。
我的问题已经解决
我正在编写代码以通过 WinSCP 将文件上传到 sftp 服务器。 除了我开始将 WinSCP 包含到代码中时,我的代码中的其他所有内容都有效。程序集设置失败,因为它显示错误,其中对象引用未设置为对象的实例。
这是 运行 Windows 使用 WinSCP .net 参考中包含的 VS 2010 的服务。
下面是设置程序集的代码,我无法使用 NuGet,因为它需要更高版本的 Visual Studio。
所以我必须创建这个我从 WinSCP 网站本身获得的程序集,但是我不明白我在这里缺少什么。
try
{
Assembly executingAssembly = Assembly.GetExecutingAssembly();
string resName = executingAssembly.GetName().Name + "." + "WinSCP.exe";
using (Stream resource = Assembly.GetExecutingAssembly().GetManifestResourceStream(resName))
using (Stream file = new FileStream(executablePath, FileMode.Create, FileAccess.Write))
{
resource.CopyTo(file);
}
}
catch (System.Exception ex)
{
WriteToFile("Cant setup assembly : " + ex.Message);
结果应该是,当程序集成功创建时,上传会话将能够完成,因为上传会话我收到错误消息 "The version of C:\Windows\TEMP\WinSCP.tmp311D.exe () does not match version of this assembly somedir\WinSCPnet.DLL (5.15.2.0)."
小小的帮助会很有帮助。
我发现了问题。显然,我已经有了程序集,这就是为什么错误提到我有错误的程序集版本。但是,它无法匹配的主要原因是因为
- 临时 WinSCP 是在我的程序无权访问的文件夹中创建的。
- 我复制粘贴了 WinSCP exe,而不是在 VS 中通过 "Add Item" 添加。
- 然后我将可执行路径硬编码到 WinSCP.exe 以修复查找错误文件夹的程序集。
我的问题已经解决