Visual Studio を使用せずに ASP.NET アプリケーションの参照を更新するにはどうすればよいですか?
-
22-08-2019 - |
質問
GAC にない外部アセンブリに依存する ASP.NET アプリケーションがあります。アプリには、アプリのコンパイル時にアセンブリを bin ディレクトリにコピーする .refresh ファイルがあります。
(アプリ ファイルを仮想ディレクトリにコピーすることにより) 実稼働サーバーにアプリをインストールすると、.refresh ファイルの存在によって bin ディレクトリが思ったように自動的に更新されません。aspnet_compiler ツールを使用しようとしましたが、アセンブリがすでに bin ディレクトリにあることが想定されているため、機能しません。
Visual Studio を使用せずに .NET でアプリの bin ディレクトリを更新するにはどうすればよいですか?
解決
VSは、それがオリジナルのトラックを保持し、彼らは変更されている場合は、/ binフォルダに新しいバージョンをコピーする必要があることを知っているように、.refreshファイルがそこにあります。彼らはただ、元のパスとファイルをテキストです - 更新日時を比較するために使用されている。
。あなたが言うときます:
私は(仮想ディレクトリにアプリケーションファイルをコピーして)、運用サーバー上のアプリをインストールすると、、binディレクトリが自動的に更新されません。
あなたは正確に何を意味するのですか?あなたはまた、本番サーバーにbinディレクトリの内容をコピーしていませんか?あなたは、アプリケーションと任意の依存アセンブリを配置する必要があります。
他のヒント
役立つかもしれないasp.netのキャッシュディレクトリをクリアます:
C:\WINDOWS\Microsoft.NET\Framework\
FRAMEWORK_VERSION\Temporary ASP.NET Files\YOUR_APP_NAME
これらの .refresh ファイルを削除します。
以下のような簡単なビルド スクリプトを作成します (cmd、NAnt、Rake、psake などを使用して)。
- それらのファイルを asp.net アプリ フォルダーにコピーします
- asp.net アプリを構築します。
または、.csproj ファイルを編集して次のような内容を追加することもできます。
<ProjectExtensions>
<PropertyGroup>
<PreBuildEvent>copy c:\path\to\dll\files $(ProjectDir)$(OutDir)</PreBuildEvent>
</PropertyGroup>
</ProjectExtensions>
これにより、dll ファイルを asp.net アプリの出力ディレクトリにコピーするビルド前アクションが追加されます。MsBuild でビルドする必要があります