することができますはい:
- を開き、プロジェクトのプロパティ、リソース]タブに移動して選択し、 "リソースの追加>既存のファイルの追加"( "Ressourcehinzufügen> Vorhandene Dateiのhinzufügenを")。 DLLを選択します。それはリソースのどこかの "ファイル"または "その他"の下に表示されます。
- アプリケーションの起動時にそれが存在するかどうかを確認し、あなたのコードでは
を以下のようにファイルにリソースからそれをコピーします。以下は、WinFormsを使用していることを前提としています。そうでない場合は、コードをWPF App
クラスに追加することもできます。 WPFアプリケーションの起動時に呼び出されるメソッドをオーバーライドできます。
static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
string dllPath = Path.Combine(Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location), "filenameofdll.dll");
if (!File.Exists(dllPath))
{
byte[] fileBytes = Properties.Resources.<resourcename>;
File.WriteAllBytes(dllPath, fileBytes);
}
Application.Run(new Form1());
}
<resourcename>
上記のコードはあなたのリソースの名前になります。 IntelliSenseによって自動完成されている必要があります。
これは、上記のコードを実行した後にのみDLLが使用される場合にのみ有効です。 DLLは、DLLのクラスの最初のインスタンスが作成されたときにのみロードする必要があります。
免責事項
これにライセンスの影響があるかどうかはわかりません。違法行為をしていないことを確認してください。また、上記は、アプリケーションがフォルダへの書き込み権限を持っている場合にのみ機能します。
は、プロジェクト参照にそれを追加し、確認して「ローカルコピー」ILマージ使用することができます。それからあなたの "bin"フォルダにビルド時に含まれます。 .exeだけを提供することはできません。.dllも含める必要があります。あなたが本当に必要ならば[exeファイルにバンドルする方法](http://stackoverflow.com/questions/189549/embedding-dlls-in-a-compiled-executable)があります。 – musefan
@musefanあなたは正しいです! –
ILMergeと呼ばれるユーティリティは、すべてのdllファイルを1つのexeファイルにパッケージ化できますが、ITextSharpのライセンスが許可されていないと感じています。 – Crowcoder