ウェブサイトのインストールとパッケージング 新規ウェブサイト[IV][ファイル解凍]オン
新しいウェブサイトを作成する前に、パッケージ化されたプロジェクトをIISで指定されたパスにコピーし、同時に個々のディレクトリに適切なアクセス権を設定することが必要です
そこで、2つのことが発生します。
1.コピーâ" [ここではRARを使ってパックし、その後解凍しています]。
2. パーミッションの設定
Copyを使用している場合、フォルダのCopyについては、私のこの投稿を参照してください。
フォルダコピー操作(非再帰的ループによるフォルダ巡回)
なぜ私はコピー方法は、2つの前提を使用していない、プロジェクトがあまりにも多くのフォルダを持って、アプリケーションインストーラの生産では、あなただけのファイルを追加することができ、フォルダは、あまりにも多くの問題を1つずつ作成することができますです!私は、プロジェクトがあまりにも多くのフォルダを使用していないことを意味し、その結果、私は、プロジェクトがあまりにも多くの問題を作成することができます。または我々は、メインプロジェクトの出力を達成するために、他のプロジェクトにプロジェクトのファイルを配置する必要があります。新しいプロジェクトに入れたり、ツールのプロジェクトに統合したりするのは、面倒です
web.configは変更することが前提なので、圧縮されたパッケージでは変更することができないからです。というのも、web.config は変更可能で、圧縮されたパッケージでは変更できないからです。結局、RAR+ ファイルを解凍して web.config をコピーしました
RARの解凍について、それを解決するコードのスニペットを紹介します。
public bool WARToFoler( string rarFromPath, string rarToPath)
{
Process rarPro = new Process();
rarPro.StartInfo.FileName = AppConfig.SoftSetup_WinRARSystemPath;
rarPro.StartInfo.Arguments = string .Format( " x \ " { 0 }\ " \ " { 1 }\ " -o+ -r -ibck " , rarFromPath, rarToPath);
rarPro.StartInfo.UseShellExecute = false ;
rarPro.StartInfo.RedirectStandardInput = true ;
rarPro.StartInfo.RedirectStandardOutput = true ;
rarPro.StartInfo.RedirectStandardError = true ;
rarPro.StartInfo.CreateNoWindow = true ;
rarPro.StartInfo.WindowStyle = ProcessWindowStyle.Hidden;
rarPro.OutputDataReceived += new System.Diagnostics.DataReceivedEventHandler(p_OutputDataReceived);
rarPro.ErrorDataReceived += new DataReceivedEventHandler(rarPro_ErrorDataReceived);
rarPro.Start(); // decompression starts
BeginOutputReadLine();
BeginErrorReadLine();
WaitForExit(). rarPro;
Dispose(). rarPro;
return IsOK;
}
void rarPro_ErrorDataReceived( object sender, DataReceivedEventArgs e)
{
if (e.Data ! = null && e.Data ! = "" )
{
outMsg.Text += " Failure: " + e.Data + " \r\n " ;
IsOK = false ;
}
}
void p_OutputDataReceived( object sender, System.Diagnostics.DataReceivedEventArgs e)
{
if (e.Data ! = null && e.Data ! = "" )
{
outMsg.Text += " Success: " + e.Data + " \r\n " ;
}
}
AppConfig.SoftSetup_WinRARSystemPath これは、インストールされたRAR.exeのパスです!
ibckパラメータは、解凍をバックグラウンドで実行させるためのもので、解凍ボックスをポップアップさせる必要はありません。
先日、RARに関連する記事も書きました。
RARを呼び出して解凍する際の問題点をドキュメント化
http://www.cnblogs.com/cyq1162/archive/2010/01/13/1646678.html
OK、これでRARの解凍は終了です。次に、App_Dataディレクトリを用意し、そこに生成されたxmlを書き込むので、書き込み可能なパーミッションを追加しておきます
パーミッションの設定には3つの方法があり、1つはnetに付属するラッパークラスを使用する方法です。もう一つは、cacls.exeを直接呼び出して実装する方法、そしてもう一つは、インターネット下でMicrosoft.win32を複雑な方法で呼び出す方法です。
これが最初のものです。非常にシンプルで、3行のコードです。
System.Security.AccessControl.DirectorySecurity fSec = new DirectorySecurity();
fSec.AddAccessRule( new FileSystemAccessRule( " everyone " , FileSystemRights.FullControl, InheritanceFlags.ContainerInherit | InheritanceFlags.ObjectInherit, PropagationFlags.None, AccessControlType.Allow));
System.IO.Directory.SetAccessControl(path, fSec);
ここでは everyone ユーザーを追加していますが、もちろん、与えられたセキュリティ要件に応じて aspnet ユーザーと置き換えることもできます! すべてのパーミッションは、この後に与えられます。
パーミッションの具体的な手順は、100以上のGoogle度や対の下にF1ヘルプドキュメントを見ては明らかです!。
タイピングを終えて、その日は終了です
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
ハートビート・エフェクトのためのHTML+CSS
-
HTML ホテル フォームによるフィルタリング
-
HTML+cssのボックスモデル例(円、半円など)「border-radius」使いやすい
-
HTMLテーブルのテーブル分割とマージ(colspan, rowspan)
-
ランダム・ネームドロッパーを実装するためのhtmlサンプルコード
-
Html階層型ボックスシャドウ効果サンプルコード
-
QQの一時的なダイアログボックスをポップアップし、友人を追加せずにオンラインで話す効果を達成する方法
-
sublime / vscodeショートカットHTMLコード生成の実装
-
HTMLページを縮小した後にスクロールバーを表示するサンプルコード
-
html のリストボックス、テキストフィールド、ファイルフィールドのコード例