簡體   English   中英

如何在 ColdFusion 中使用 C#.NET 程序集?

[英]How can I use C#.NET assemblies in ColdFusion?

我的公司有一個用 ColdFusion 編寫的 web 應用程序,我正在嘗試集成一個用 C#.Net 編寫的 API。 我是 .Net 開發的新手,所以我可能不太了解術語。 我創建了一個非常簡單的 C# class 來測試定義如下的 ColdFusion:

namespace FIX
{
    public class IntegersTest
    {
        public int Add(int n, int m)
        {
            return n + m;
        }
    }
}

我能夠構建這個 class 和 a.dll 是 output (FIX.dll)。 現在我使用以下代碼創建一個 ColdFusion 文件:

<cfobject type="dotnet" class="FIX.IntegerTest" name="math" action="create"
    assembly="C:\path\to\file\FIX.dll">

當我嘗試運行它時,出現以下錯誤:

Class FIX.IntegerTest not found in the specified assembly list.
The assembly that contains the class must be provided to the assembly attribute. 

在 do.net 錯誤日志中,我看到“正在中止代理生成,因為在依賴 class 列表中找不到任何類。這可能意味着 class FIX.IntegerTest 不存在於程序集中。”

我試過重新安裝 ColdFusion.Net 服務以及 ColdFusion 本身。 我嘗試了 targeting.Net Framework 3.0 並重新構建 class。我嘗試了 cfobject 標記的 class 屬性的多種變體。 我不太確定還能做什么。

需要注意的是下面的ColdFusion代碼沒有報錯:

<cfobject type="dotnet" name="sidiClass" class="System.IO.DriveInfo">

我正在使用 Visual Studio 2019、ColdFusion 2018,並將我的測試項目的目標框架設置為 .NET 4.7.2。 任何和所有輸入將不勝感激。 謝謝你。

編輯正如@Ageax 指出的那樣,我剛剛打錯了字,但我得到了另一個 class,即使我確保拼寫正確。 答案是目標框架。 ColdFusion 不喜歡我的目標是 .Net Framework 3.0(由於某些原因,第二個項目不允許我切換到 4.0+)。 我用正確的目標框架創建了一個新項目,一切似乎都在工作!

正如@Ageax 所指出的那樣,我剛剛打錯了字,但即使我確保拼寫正確,我還是為另一個 class 得到了這個。 答案是目標框架。 ColdFusion 不喜歡我的目標是 .Net Framework 3.0(由於某些原因,第二個項目不允許我切換到 4.0+)。 我用合適的目標框架 (4.7.2) 創建了一個新項目,一切似乎都在工作!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM