質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.37%
.NET

.NETとは、主に.NET Frameworkと呼ばれるアプリケーションまたは開発環境を指します。CLR(共通言語ランタイム)を搭載し、入力された言語をCIL(共通中間言語)に変換・実行することが可能です。そのため、C#やPythonなど複数の言語を用いることができます。

MSBuild

MSBuild とはMicrosoftが提供する、XMLベースのビルド環境です。通常,Visual Studioと一緒に使われています。

Q&A

解決済

1回答

158閲覧

.NETの SDKスタイルのプロジェクトファイルでMicrosoft.NET.Sdkを指定した場合、AfterCompile は使用可能ですか?

currysita

総合スコア43

.NET

.NETとは、主に.NET Frameworkと呼ばれるアプリケーションまたは開発環境を指します。CLR(共通言語ランタイム)を搭載し、入力された言語をCIL(共通中間言語)に変換・実行することが可能です。そのため、C#やPythonなど複数の言語を用いることができます。

MSBuild

MSBuild とはMicrosoftが提供する、XMLベースのビルド環境です。通常,Visual Studioと一緒に使われています。

1グッド

0クリップ

投稿2024/08/21 06:36

実現したいこと

.NETのプロジェクトファイルについて調べています。AfterCompileターゲットを使えるかどうかを知りたいです。

SDKスタイルのプロジェクトファイルの書き方について以下のドキュメントを調べていました。
https://learn.microsoft.com/ja-jp/dotnet/core/project-sdk/overview
ここにある使用可能なSDK「Microsoft.NET.Sdk」のソースを調べました。
https://github.com/dotnet/sdk
このソースの中には「AfterCompile」という単語がありません。
手元にある既存のプロジェクトファイルでは、「Target Name=AfterCompile」というターゲットを使っていました。以下の記事にあるようなものです。
https://qiita.com/m2tmk/items/c24e4d0eb30d820dd7b5
VisualStudioのビルド処理には、AfterCompileというターゲットが使えるように見えます。
https://learn.microsoft.com/ja-jp/visualstudio/msbuild/how-to-extend-the-visual-studio-build-process?view=vs-2022

発生している問題・分からないこと

手元のプロジェクトファイルで、AfterCompileターゲットのログが出力されませんでした。
既存のプロジェクトファイルの形式だとこのようなログが出されていました。

プロジェクト "HogeHoge.csproj" 内のターゲット "AfterCompile" のビルドが終了しました。

しかし、SDKスタイルのプロジェクトファイルでビルドしたらこのログが出てきません。
プロジェクトファイルの動作はSDKによって異なるように見えます。
"AfterCompile"は使えるのでしょうか?

該当のソースコード

xml

1こちらの記事にあるプロジェクトファイルを元に記載しました。 2https://qiita.com/m2tmk/items/c24e4d0eb30d820dd7b5 3 4<Project Sdk="Microsoft.NET.Sdk"> 5 <PropertyGroup> 6 <OutputType>Exe</OutputType> 7 <TargetFramework>net48</TargetFramework> 8 <WebJobName>$(AssemblyName)</WebJobName> 9 <WebJobType>Continuous</WebJobType> 10 </PropertyGroup> 11 <ItemGroup> 12 <None Include="App.config"> 13 <SubType>Designer</SubType> 14 </None> 15 <None Include="App.Debug.config"> 16 <DependentUpon>App.config</DependentUpon> 17 <SubType>Designer</SubType> 18 </None> 19 <None Include="App.Release.config"> 20 <DependentUpon>App.config</DependentUpon> 21 <SubType>Designer</SubType> 22 </None> 23 </ItemGroup> 24 <UsingTask TaskName="TransformXml" AssemblyFile="$(MSBuildExtensionsPath)\Microsoft\VisualStudio\v$(VisualStudioVersion)\Web\Microsoft.Web.Publishing.Tasks.dll" /> 25 <Target Name="AfterCompile" Condition="exists('app.$(Configuration).config')"> 26 <TransformXml Source="app.config" Destination="$(IntermediateOutputPath)$(TargetFileName).config" Transform="app.$(Configuration).config" /> 27 <ItemGroup> 28 <AppConfigWithTargetPath Remove="app.config" /> 29 <AppConfigWithTargetPath Include="$(IntermediateOutputPath)$(TargetFileName).config"> 30 <TargetPath>$(TargetFileName).config</TargetPath> 31 </AppConfigWithTargetPath> 32 </ItemGroup> 33 </Target> 34 35</Project>

試したこと・調べたこと

  • teratailやGoogle等で検索した
  • ソースコードを自分なりに変更した
  • 知人に聞いた
  • その他
上記の詳細・結果

ビルドのログに"AfterCompile"のログが出ませんでした。

補足

特になし

juner👍を押しています

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

自己解決

自己解決しました。msbuildのログ出力レベルを指定し間違えておりました。
AfterCompileターゲットはビルドされておりました。

投稿2024/08/21 06:46

currysita

総合スコア43

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.37%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問