ユーザーは ClickOnce アプリケーションをインストールできません。エラーは次のとおりです。「ファイル NLog.dll は、有効なポータブル実行可能 (PE) ファイルではありません。」私のマシンでは問題なく動作しますが、nLog がインストールされています。これは、クライアント マシンでは不可能です。これを機能させる方法はありますか?
5 に答える
NLog.config
を使用してインストールした場合、プログラムにコピーされない場合に、この問題に対する答えが見つかりましたClickOnce
。
使用中のNLog.config
ファイルを選択し、次のように設定する必要があります。Project
Solution Explorer
Properties
- ビルド アクション: コンテンツ
- 出力ディレクトリにコピー: 常にコピー
これで、ファイルを使用してデプロイするときにClickOnce
もコピーする必要があります! :)
すべてのNLog構成データをNLog.configファイルではなくApp.configファイルに配置しましたが、ClickOnceを使用して展開した後も機能しました。エラーはなく、デプロイされたアプリケーションでログが機能していました。
ビルド オプションを確認し、NLog.dll が「アプリケーション ファイル」に含まれていることを確認して、「ダウンロード グループ」/必須に含めます。
NLog アセンブリが GAC に展開されている場合、それを (単純に) ClickOnce セットアップに含めることはできません。それらをローカル DLL として展開してみてください。それが不可能な場合は、NLog を展開するために別のセットアップ (または MSI) が必要になります。
dll をプロジェクトに追加し、BuildAction = None を設定し、「出力ディレクトリにコピー」を「コピーしない」に設定します。
プロジェクトで NLog への参照を削除します。参照を再度追加し、プロジェクトに追加したばかりの dll をポイントします。参照のプロパティで、「ローカルにコピー」を「true」に設定します。
アプリケーションを実行すると、アプリケーションはローカル バージョンを指し、アプリケーションを展開すると、ローカル バージョンを展開してそれを指します。
これは多くのサードパーティ DLL で機能しますが、すべてではありません。試してみるのが一番です。