如何在具有不同命名空间和dll的c#脚本中使用外部库

时间:2016-06-06 10:28:12

标签: c# novacode-docx cs-script

我想在cs-script中使用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();
        }
    }
}

4 个答案:

答案 0 :(得分:2)

出于安全原因,您无法引用类似的显式路径。必须将程序集放置在以下位置之一并引用为//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();
        }
    }
}

答案 1 :(得分:1)

您是否已阅读此link

  

在Visual C#中添加引用   在Solution Explorer中,右键单击项目节点,然后单击Add Reference。   在“添加引用”对话框中,选择指示要引用的组件类型的选项卡。   选择要引用的组件,然后单击“确定”。

没有VS:

转到csproj文件,可以添加引用<ItemGroup>

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

你可以添加库。

答案 2 :(得分:1)

DocX seems to be available on NuGet,所以我强烈建议从那里获取依赖项,而不是将它放在本地系统的文件中。 (这有助于确保可重复的构建,如果您与其他人共享此代码,打包应用程序,并且如果发布新版本,还可以更轻松地升级DocX。)

如果您正在使用Visual Studio,则可以在解决方案资源管理器中右键单击该项目,然后选择&#34;管理NuGet包...&#34;打开一个帮助您安装软件包的对话框,或者打开软件包管理器控制台并输入Install-Package DocX

如果您在没有Visual Studio的情况下在.NET Core上构建,只需将"DocX": "1.0.0.19"添加到project.json的dependencies节点。

安装软件包后,您可以像任何其他名称空间导入一样using DocX;

答案 3 :(得分:0)

两者都需要使用docx。

//css_reference DocX.dll;
using Novacode;

你也可以参考像

这样的地方
//css_reference D:\lib\DocX.dll;
using Novacode;