【问题标题】:c# assembly not referenced for identical code in visual studios?c# 程序集没有在 Visual Studio 中引用相同的代码?
【发布时间】:2018-11-03 03:05:21
【问题描述】:

由于“Xero.Api.Infrastructure.Interface.IAuthenticator 在未引用的程序集中定义”错误,我在构建“SharePoint 项目”时遇到问题。问题是,当我在“控制台应用程序项目”中使用相同的代码和引用时,它能够正确构建。

所以这是可构建代码的图像: Buildable Code

这是不可构建代码的图像: Non-Buildable Code

这是我在尝试构建我的 SharePoint 项目时遇到的错误: Referencing Error

代码是:

X509Certificate2 cert = new X509Certificate2(@"C:\OpenSSL-Win64\bin\public_privatekey.pfx", "lanteria");
var private_app_api = new XeroCoreApi("https://api.xero.com", new PrivateAuthenticator(cert),
                new Consumer("GPR4Vxxxxxxxxxxxxxxx6TRVCI", "0VMT6xxxxxxxxxxxxxxRD26S"), null,
                new DefaultMapper(), new DefaultMapper());

当尝试使用 PrivateAuthenticator 对象作为输入时,当它采用 IAuthenticator 对象时会发生错误。 PrivateAuthenticator 对象是 IAuthenticator 的子类,因此这应该不是问题。

我确保我在两个项目中都以相同的方式引用了程序集。我什至第三次这样做以确保这一点。唯一的区别是一个项目是控制台应用程序项目,而另一个项目是 SharePoint 项目。任何帮助将不胜感激。

谢谢

【问题讨论】:

  • X is defined in an assembly that is not referenced 你设法省略了重要部分,并粘贴了代码和错误的图像。

标签: c# visual-studio sharepoint assemblies


【解决方案1】:

我能够找到问题的根源,但仍然无法解决它。我目前正在使用一种解决方法。问题是我的一个程序集引用了另一个程序集,并且由于某种原因在 SharePoint 项目中,它无法引用。 即

  • SharePoint 项目参考 A 和 B
  • A 是一个独立的程序集
  • B 引用 A。

问题是由于某种原因 B 无法引用 A。我的临时解决方法是因为我能够在 ConsoleApplication 上运行,所以我让我的 SharePoint 项目运行控制台应用程序。这使我能够在 SharePoint 上创建触发器,该触发器将运行将更改推送到 Xero 的控制台应用程序。

【讨论】:

    【解决方案2】:

    你需要下载 nuget

     PM> Install-Package Xero.API.SDK.Minimal or Install-Package Xero.API.SDK 
    

    【讨论】:

    • 这对我不起作用。也许是因为我签署了我的 dll 文件的方式?这是我用来签名的代码:ildasm /all /out=Xero.Api.Example.Applications.il Xero.Api.Example.Applications.dllildasm /all /out=Xero.Api.il Xero.Api.dllsn -k mykey.snkilasm /dll /key=mykey.snk Xero.Api.Example.Applications.ililasm /dll /key=mykey.snk Xero.Api.il
    猜你喜欢
    • 2020-06-11
    • 1970-01-01
    • 1970-01-01
    • 2017-03-23
    • 2010-09-10
    • 2010-11-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多