1. ホーム
  2. c#

[解決済み] msbuild を使用してファイルシステム発行プロファイルを実行する

2023-02-02 02:59:57

質問

VS2010 で作成された c# .Net 4.0 プロジェクトがあり、現在 VS2012 でアクセスされています。

この Web サイトから必要なファイルのみを宛先ロケーションに公開しようとしています。 (C:\buildsMyProject[Files])

私のファイル構成です。 ./ProjectRoot/MyProject.csproj ./ProjectRoot/Properties/PublishProfiles/FileSystemDebug.pubxml。

MSBuildで以下を実行しています。

C:\WindowsMicrosoft.NETFrameworkv4.0.30319 MSBuild.exe ./ProjectRoot/MyProject.csproj /p:DeployOnBuild=true /p:PublishProfile=./ProjectRoot/Properties/PublishProfiles/FileSystemDebug.pubxml

FileSystemDebug.pubxmlのxmlは以下のとおりです。

<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
  <PropertyGroup>
    <WebPublishMethod>FileSystem</WebPublishMethod>
    <LastUsedBuildConfiguration>Release</LastUsedBuildConfiguration>
    <LastUsedPlatform>Any CPU</LastUsedPlatform>
    <SiteUrlToLaunchAfterPublish />
    <ExcludeApp_Data>False</ExcludeApp_Data>
    <publishUrl>C:\builds\MyProject\</publishUrl>
    <DeleteExistingFiles>True</DeleteExistingFiles>
  </PropertyGroup>
</Project>

その結果、動作は

  • をクリックすると、ここにZIPファイルが作成されます。 ./ProjectRoot/obj/Debug/Package/MyProject.zip。
  • には何もデプロイされません。 <publishUrl>C:\builds\MyProject\</publishUrl> wtf
  • 作成される zip ファイルは豚の朝食で、アプリケーションに必要のないファイルでいっぱいです。

Visual Studio でこの公開プロファイルを実行すると、*.em.em.にフォルダが作成されます。 C:\builds}MyProject* にフォルダが作成されます。 に作成され、私が欲しい正確な成果物が含まれています。

msbuildからこの単純な結果を得るにはどうすればよいですか?

どのように解決するのですか?

参考:Visual Studio 2015で同じ問題が発生しました。何時間も試した結果、今は msbuild myproject.csproj /p:DeployOnBuild=true /p:PublishProfile=myprofile .

動作させるためには、.csproj ファイルを編集する必要がありました。それは次のような行を含んでいました。

<Import Project="$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v10.0\WebApplications\Microsoft.WebApplication.targets" 
  Condition="false" />

この行を以下のように変更しました。

<Import Project="$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v14.0\WebApplications\Microsoft.WebApplication.targets" />

(10.0を14.0に変更しましたが、これが必要だったかどうかはわかりません。しかし、私は確かに条件の部分を削除する必要がありました)。