私は、その性質上、業務時間外に実行してユーザーのワークフローを中断しないようにする必要があるアプリケーションを持っています。私はダウンロードして、Microsoft.Win32.TaskScheduler.dllへの参照を追加しました。これは、その日後にタスクを実行するスケジュールを立てる最良の方法に関する別の質問にお勧めしています。デバッグでc#コンソールアプリケーションMicrosoft.Win32.TaskScheduler.dll展開時FileNotFoundException
予想通り、プログラムは動作しますが、しかし展開するときに、私は次のエラーを取得する:
Unhandled Exception: System.IO.FileNotFoundException: Could not load file or assembly 'Microsoft.Win32.TaskScheduler, Version=2.5.16.0, Culture=neutral, PublicKeyToken=0d013ddd5178a2ae' or one of its dependencies.
これは、それが構築されていたときにDLLが正しく実行ファイルに追加されていないと信じて私をリード。
私はこの解決するために撮影したステップ:ソリューションエクスプローラーで
- は、Microsoft.Win32.TaskSchedulerローカルコピープロパティは、プロジェクトのプロパティ
- Trueの確保、アプリケーションファイルを公開 - Microsoft.Win32を。パブリッシュ、必須ダウンロード、ハッシュ
- は、依存関係を削除し、再度追加
- がthis answer
すべてがこの時点で失敗しました。 .dllが/ bin/debugフォルダにあることを確認できます。さらに、手動で同じ方法でを追加しましたが、期待通りに機能するようです。
追加の提案がある場合は、それを感謝します。
デプロイメントにTaskScheduler dllを含めましたか? IOW、あなたのbinフォルダだけでなく、.exeが実行されている場所? –
TaskScheduler.dllを展開されたプログラムと同じディレクトリに配置して実行すると、プログラムが正しく起動します。しかし、このデプロイメントがどのように設定されているので、私は1つのファイルに制限されています。編集:私はリソースとしてDLLを追加し、実行時にファイルディレクトリにファイルを書き込むか、オルタット/より良い解決策はありますか? –
その後、展開の設定を変更する必要があるように聞こえます。アプリを実行するためにDLLが必要な場合は、DLLをデプロイする必要があります。 –