簡體   English   中英

如何在具有不同名稱空間和dll的C#腳本中使用外部庫

[英]How to use external library in c# script having different namespace and dll

我想在CS腳本中使用novacode-docx。 我如何才能正確地參考組裝。 我嘗試了以下操作,但沒有解決缺少程序集引用的問題。

//css_reference D:\lib\DocX.dll;
using System;
using System.Diagnostics;
using System.Windows.Forms;

class Script
{
    [STAThread]
    static public void Main(string[] args)
    {
        using (DocX doc = DocX.Create(@"C:\Users\name\Desktop\test.docx"))
        {
             doc.PageLayout.Orientation = Orientation.Landscape;
             var table = doc.AddTable(12, 2); 
             doc.InsertTable(table);
             doc.Save();
        }
    }
}

出於安全考慮,您不能引用類似的顯式路徑。 程序集必須放置在以下位置之一,並引用為//css_reference DocX.dll;

文件位置要加載的程序集必須來自以下位置之一(順序指示程序集搜索優先級):

  • 腳本所在的目錄
  • 默認腳本庫目錄腳本庫(%CSSCRIPT_DIR%\\ Lib)
  • 自定義腳本庫目錄(在配置控制台SearchDirs中指定)
  • GAC

請參閱此處以獲取更多信息: http : //www.csscript.net/help/using_.net_assemblies.html

將Docx.dll拖放到與CS腳本所在的文件夾相同的文件夾中,然后嘗試以下操作:

//css_reference DocX.dll;
using System;
using System.Diagnostics;
using System.Windows.Forms;
using Novacode;

class Script
{
    [STAThread]
    static public void Main(string[] args)
    {
        using (DocX doc = DocX.Create(@"C:\Users\name\Desktop\test.docx"))
        {
             doc.PageLayout.Orientation = Orientation.Landscape;
             var table = doc.AddTable(12, 2); 
             doc.InsertTable(table);
             doc.Save();
        }
    }
}

你讀過這個鏈接了

在Visual C#中添加引用在解決方案資源管理器中,右鍵單擊項目節點,然后單擊“添加引用”。 在“添加引用”對話框中,選擇指示您要引用的組件類型的選項卡。 選擇要引用的組件,然后單擊“確定”。

沒有VS:

轉到csproj文件,有一個<ItemGroup> ,可以在其中添加引用:

<ItemGroup>
    <Content Include="libs\...">
      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
    </Content>
...

在那里您可以添加庫。

DocX似乎可以在NuGet上使用 ,因此我強烈建議從那里獲取依賴關系,而不是將其保存在本地系統的文件中。 (這有助於確保可重復的構建,如果您要與其他人共享此代碼以及打包應用程序的話,也可以使發布新版本的DocX升級變得更加容易。)

如果您使用的是Visual Studio,則可以在解決方案資源管理器中右鍵單擊該項目,然后選擇“管理NuGet軟件包...”以打開一個對話框來幫助您安裝該軟件包,也可以打開“軟件包管理器控制台”並輸入Install-Package DocX

如果要在不帶Visual Studio的.NET Core上進行構建,則只需將"DocX": "1.0.0.19"到project.json的dependencies節點。

安裝該軟件包后,您就可以using DocX; 就像任何其他名稱空間導入一樣。

兩者都是使用docx所必需的。

//css_reference DocX.dll;
using Novacode;

您也可以參考任何地方,例如

//css_reference D:\lib\DocX.dll;
using Novacode;

暫無
暫無

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

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