8

msbuild を使用してデプロイする Web サイト プロジェクトがあります。プロジェクトには、ビルドに必要なファイルとフォルダー (web.config パーツの置換ファイルなど) がいくつかありますが、ターゲット サイトにはデプロイしたくありません。

私が考えることができる最善の方法は、これらのファイルを削除するビルド後のターゲットですが、これらのファイルを出力フォルダーにコピーしない方法があるかどうかを知りたいです。

4

5 に答える 5

8

こんにちは、このブログ投稿をチェックして、私の一日を救ってください。

私は縮小されていないバージョンの JavaScript を除外し、公開時に縮小バージョンのみを使用しようとしていました (大きな JavaScript と chirp.config を削除しています)。これはデバッグにのみ必要です。

リンクに記載されているように、これをプロジェクトファイルに配置するだけです。

<ItemGroup>
    <ExcludeFromPackageFolders Include="Scripts\large">
      <FromTarget>Project</FromTarget>
    </ExcludeFromPackageFolders> 


    <ExcludeFromPackageFiles Include="Scripts\mash.js.chirp.config" />  
    <ExcludeFromPackageFiles Include="Content\mash.js.chirp.config" />
  </ItemGroup>

公開されたサイトには、次のものは含まれません。

  • スクリプト\大
  • mash.js.chirp.config
于 2012-10-18T10:47:20.880 に答える
7

ファイルを選択し、「ビルド アクション」を「ExcludeFromPackageFiles」に設定できます。そうすれば、Visual Studio が csproj xml を編集するので、編集する必要はありません。

于 2012-10-29T15:31:12.063 に答える
3

MSDeploy を Web パブリッシング パイプラインと共に使用して、パッケージ作成に含めるファイルを除外できます。たとえば、展開されたパッケージから App_Data フォルダーを除外する場合は、このようなものを使用できます

<Target Name="ExcludeApp_Data" DependsOnTarget="$(ExcludeApp_DataDependsOn)" Condition="$(ExcludeApp_Data)" > 
  <ItemGroup>
    <ExcludeFromPackageFolders Include="App_Data">
      <FromTarget>ExcludeApp_Data</FromTarget>
    </ExcludeFromPackageFolders>
  </ItemGroup>
</Target>

どういうわけか、エディターはコードを正しく表示しません。上記は、Web のパッケージ化/発行を構成すると、proj ファイル内に生成されます。独自のターゲットを追加して、それを成し遂げることができます。

たとえば、ビルドから Scripts\jquery ファイルを除外する場合は、以下のように個別の ExcludeScriptFiles.wpp.targets ファイルを作成します。

<ItemGroup> 
  <ExcludeFromPackageFolders Include="Internal">
    <FromTarget>ExcludeScriptFiles.wpp.targets</FromTarget>         
  </ExcludeFromPackageFolders>
  <ExcludeFromPackageFiles Include="Scripts\jquery.js;xyz.js">
    <FromTarget>ExcludeScriptFiles.wpp.targets </FromTarget> 
  </ExcludeFromPackageFiles>
</ItemGroup>

これは、独自のターゲットを作成するための簡単な例です。

お役に立てれば

于 2011-06-16T02:41:27.297 に答える
3

ファイルのプロパティ エクスプローラーで、[出力ディレクトリにコピー] オプションを [コピーしない] に変更します。

ここに画像の説明を入力

于 2011-06-15T13:44:50.570 に答える