私は、MSI パッケージを介して IIS Web サイトに公開される WCF サービスに取り組んでいます。私が抱えている問題は何よりも厄介ですが、可能であればそれを回避したいと思っています.
サービスを作成している間、サービス ホストを右クリックして [Web サイトの公開] を選択することにより、サービスを開発サーバーに公開します。これを行うと、次のフォルダー構造がインストールされます。
- apsnet_client
- 置き場
ディレクトリ内にbin
(サービスを参照する DLL ファイルと共に)、 という名前の DLL ファイルがあります。このファイルには、実際のサービス コードを含むファイルApp_Code.dll
のコンパイル済みバージョンが含まれています。Service.cs
明らかに、Visual Studio デプロイを使用してライブ環境に移行することはできないため、MSI パッケージを作成してインストールしました。MSI には、サービス ホストからのコンテンツ ファイルが含まれているだけです。
MSI が必要なファイルをインストールしている場合、ディレクトリ構造は少し異なります。ファイルの代わりに、Web サイト内にディレクトリApp_Code.dll
を作成し、そこにファイルを配置します。これは機能し、サービスにアクセスできますが、サーバーにアクセスできる人が変更できるように、サービスをインスタンス化するコードをそこに置いておくことにあまり熱心ではありません。App_Code
Service.cs
したがって、基本的に私がする必要があるのは、Web サイトの公開の出力を MSI パッケージに含めて、プリコンパイルされたものを取得することですApp_Code
-これを行う方法はありますか? 私のソリューションでは、Service.cs
ファイルをコンパイルするように設定するオプションがないため、別の方法でコンパイルする必要があります。
ありがとう。