0

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

4 に答える 4

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();
        }
    }
}
于 2016-06-06T10:43:42.090 に答える
1

このリンクを読んだことがありますか

Visual C# で参照を追加するには ソリューション エクスプローラーで、プロジェクト ノードを右クリックし、[参照の追加] をクリックします。[参照の追加] ダイアログ ボックスで、参照するコンポーネントのタイプを示すタブを選択します。参照するコンポーネントを選択し、[OK] をクリックします。

VS なし:

参照を追加できるcsprojファイルがあるファイルに移動します。<ItemGroup>

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

そこにライブラリを追加できます。

于 2016-06-06T10:33:46.973 に答える
1

DocX は NuGetで利用できるようです。そのため、ローカル システムのファイルに依存関係を保持するのではなく、そこから依存関係を取得することを強くお勧めします。(これにより、このコードを他のユーザーと共有したり、アプリケーションをパッケージ化したりする場合に、反復可能なビルドを確保するのに役立ちます。また、新しいバージョンがリリースされた場合に DocX を簡単にアップグレードすることもできます。)

Visual Studio を使用している場合は、ソリューション エクスプローラーでプロジェクトを右クリックし、[NuGet パッケージの管理...] を選択して、パッケージのインストールに役立つダイアログを開くか、パッケージ マネージャー コンソールを開いてInstall-Package DocX.

Visual Studio を使用せずに .NET Core でビルドしている場合は、project.json"DocX": "1.0.0.19"のノードに追加するだけです。dependencies

パッケージがインストールさusing DocX;れると、他の名前空間のインポートと同じように行うことができます。

于 2016-06-06T10:34:19.710 に答える
0

docx を使用するには両方が必要です。

//css_reference DocX.dll;
using Novacode;

次のような場所への参照を与えることもできます

//css_reference D:\lib\DocX.dll;
using Novacode;
于 2016-06-06T11:22:48.340 に答える