私は紺碧のアプリを持っています。ソースコードを配布して毎回再コンパイルすることなく、無料のアプリケーションとして共有することは可能ですか (誰でも自分の azure アカウントに展開できるようになります)。私はAzureデータベースを使用しているため、リクエストを行うために接続文字列が必要であり、現在は文字列がハードコーディングされています。また、ハードコーディングされた接続文字列を使用して、ブロブと動的インスタンス割り当てにアクセスしています。これらの文字列を取り出して、プロジェクトを再コンパイルせずに変更できるようにする方法はありますか? ありがとう。
1 に答える
そのとおり。クラウド プロジェクトをコンパイルすると、パッケージ ファイルと構成ファイルが作成されます。必要に応じて、これらのファイルを配布できます。
接続文字列やその他の設定の削除に関して、できることの 1 つは、メインのクラウド プロジェクトと同じ設定を持つ別のクラウド プロジェクトを作成することです。唯一のことは、ユーザー環境に固有の設定 (接続文字列など) が空になることです。次に、このクラウド プロジェクトをパッケージ化し、配布cspkg
してcscfg
ファイル化します。
さらに詳しく説明するには、以下のスクリーンショットをご覧ください。
基本的に、ここには 2 つのクラウド プロジェクト (Web.Azure
とWeb.Test.Local
) があり、両方のクラウド プロジェクトが同じWeb
プロジェクトを参照しています。ここで、私たちの場合Web.Azure
は開発クラウド プロジェクトでWeb.Test.Local
あり、テスト クラウド プロジェクトです。これらのプロジェクトはどちらも同じ設定名を持っていますSqlConnectionString
。Web.Azure
では、その値を開発中の SQL Server の値に指定しましたが、 では他Web.Test.Local
の値を指定できます。テスターにアプリケーションをテストしてもらいたい場合、テスターはパッケージをWeb.Test.Local
取得し、そのプロジェクトに基づいて設定を取得します。同じ例えを取ると、2 つのクラウド プロジェクトを作成できます (次にDev
と を呼び出しましょうRelease
)。あなたがしなければならないことは、両方のクラウド プロジェクトで同じ設定を使用することですが、それらの設定には値がありません。Release
事業。
あなたが取ることができるさらに別のアプローチは、このブログ投稿で説明されているものです: http://blog.paraleap.com/post/2011/09/13/Managing-environments-in-a-distributed-Azure-or-other-cloud-ベースの NET ソリューション.
cspkg
ファイルは基本的にファイルであることに注意してくださいzip
。パッケージ ファイルの拡張子を cspkg から zip に変更し、そのファイルを解凍して、すべてのバイナリを表示できました。次に、RedGate の Reflector や Telerik の Just Decomplie などのツールを使用して、バイナリ ファイルを逆コンパイルし、場合によってはソース コードを調べることができます。これを回避するには、パッケージ化する前にバイナリを難読化することをお勧めします。