首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用C#程序集不匹配作为对象引用的WinSCP Windows未设置为对象实例

使用C#程序集不匹配作为对象引用的WinSCP Windows未设置为对象实例
EN

Stack Overflow用户
提问于 2019-06-28 04:32:04
回答 1查看 363关注 0票数 0

我正在编写代码,通过WinSCP将文件上传到sftp服务器。代码中的其他所有内容都正常工作,除非我开始将WinSCP包含到代码中。程序集安装程序失败,因为它显示了未将对象引用设置为对象实例的错误。

这是在Windows上运行的,使用的是WinSCP .net引用中包含的VS 2010。

下面是设置程序集的代码,我无法使用NuGet,因为这需要更高版本的Visual。

因此,我必须创建这个程序集,这是我从WinSCP网站本身得到的,但是我不明白我在这里缺少了什么。

代码语言:javascript
运行
复制
            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);

结果应该是,当程序集成功创建时,上传会话将能够在我收到一个错误的上传会话时进行“C:\Windows\TEMP\WinSCP.tmp311D.exe ()版本与此程序集somedir\WinSCPnet.DLL的版本不匹配(5.15.2.0)”。

一个小小的援助将是非常有帮助的。

EN

Stack Overflow用户

回答已采纳

发布于 2019-07-31 07:17:59

我发现了问题。显然,我已经有了程序集,这就是为什么错误提到我有错误的程序集版本。但是,它无法匹敌的主要原因是

  1. 临时WinSCP是在我的程序无法访问的文件夹中创建的。
  2. 我复制粘贴的WinSCP执行,而不是添加通过“添加项目”在VS。
  3. 然后,我硬编码WinSCP.exe的可执行路径,以修复程序集,查找错误的文件夹。

我的问题解决了。

票数 1
EN
查看全部 1 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56800938

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档