2016-04-14 4 views
0

(ステートフルな)Actorサービスでソリューションをビルドするたびに、サービスは自動的にApplicationManifest.xml DefaultServicesセクションに追加されます。ActorServiceのDefaultServiceの作成を無効にするにはどうすればよいですか?

手動でインスタンス化するサービスのこの動作を無効にするにはどうすればよいですか?

<DefaultService>タグを削除してActorサービスのServiceManifest.xmlを変更しようとしましたが、すべてのビルドに自動的に追加されました。

+0

次のmsbuildルートでこの問題を修正しましたか?私は同じ問題で自分自身を見つける –

+0

私はmsbuildルートを試したことがないと私は知らない。この問題で時間を無駄にするような気がしませんでしたが、それは私にとって些細なことです。とにかくこれを行うためのより簡単な方法がmsbuildを乱用するよりも存在するはずです。 –

答えて

0

すべてのサービスが自動的にデフォルトに設定されます。その機能だけを無効にすることはできません。最良の選択肢は、望ましくない変更がファイルに適用された後にアプリケーションマニフェストファイルを更新するMSBuildロジックを挿入することです。これをメインのパッケージロジックに統合しておくと、VSから発行したりF5から自動的に実行されます。

これを行うには、あなたの.sfprojファイルにMSBuildのターゲットを追加することができます。

<Target Name="AfterPackage" AfterTargets="Package"> 
    <!-- Insert your MSBuild logic here --> 
</Target> 

が、独自のMSBuildのロジックを挿入することにより、あなたはアプリのマニフェストファイルにしたいと持って必要な変更を行うことができますこれらの変更は、VSがパッケージ操作を実行するたびに暗黙的に実行されます。したがって、あなたの場合、デフォルトのサービスとして定義されたサービスを持たないようにファイルを更新することができます。 PackageLocation MSBuildプロパティを使用すると、パッケージフォルダのパスを特定できます。

関連する問題