MSbuildでWebサイトを自動的にプリコンパイルする際の問題

StackOverflow https://stackoverflow.com/questions/308931

  •  08-07-2019
  •  | 
  •  

質問

すべて、

現在、2つのクラスライブラリとMsbuildを使用してteamCity内に構築されているWebサイトで構成されるソリューションがあります。次に、Webサイトをプリコンパイルして、アーティファクトとして使用できるようにします。ただし、

を使用してプリコンパイルしようとすると
<Target Name="PrecompileWeb" DependsOnTargets="Build">
    <AspNetCompiler
        PhysicalPath="$(BuildDir)\Location\" 
        TargetPath="$(BuildDir)\Publish"
        Force="true"
        Debug="true"

        />
  </Target>

仮想パスを探しているためにエラーが発生します(サイトの公開に興味のないファイルをプリコンパイルするだけではありません)ダミーパスを入れるとIISのアプリケーションではないという別のエラー(正しく)

任意のアイデア

役に立ちましたか?

解決

これはWebサイトまたはWebアプリケーションプロジェクトですか?後者の場合、AspNetCompilerタスクを実行する代わりに、csproj / vbprojファイルに対してMSBuildタスクを実行し、ターゲット Rebuild; ResolveReferences; _CopyWebApplication を呼び出して、 OutDir プロパティを指定します。

Webサイトを使用している場合、VirtualPathを有効なIISパスに指定します。何が起こっているかというと、VirtualPathプロパティを指定しないと、PhysicalPathとIISを使用してそれを解決しようとします。これは、AspNetCompilerがどのように機能するかの成果物に過ぎないと考えています。

他のヒント

これはすべてのビルドで発生するため、これが機能するかどうかわかりませんか?これは、ローカルビルドではなくTeamCityサーバーでビルドを実行する場合にのみ行います。

現在、本質的に

必要なすべてのソリューションを構築する 単体テストを実行する アーティファクトのZipフォルダーを作成します

乾杯

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top