--- lang: ja-jp breaks: true --- # MSBuild csproj ビルドするファイル(MSBuild 項目)を選択する/除外する 2021-10-21 > 方法: ビルドするファイルを選択する > https://docs.microsoft.com/ja-jp/visualstudio/msbuild/how-to-select-the-files-to-build > 方法: ビルドからファイルを除外する > https://docs.microsoft.com/ja-jp/visualstudio/msbuild/how-to-exclude-files-from-the-build > 方法: ビルドで環境変数を使用する > https://docs.microsoft.com/ja-jp/visualstudio/msbuild/how-to-use-environment-variables-in-a-build > MSBuild 項目 > https://docs.microsoft.com/ja-jp/visualstudio/msbuild/msbuild-items > MSBuild の予約済みおよび既知のプロパティ > https://docs.microsoft.com/ja-jp/visualstudio/msbuild/msbuild-reserved-and-well-known-properties > MSBuild の既知の項目メタデータ > https://docs.microsoft.com/ja-jp/visualstudio/msbuild/msbuild-well-known-item-metadata > 一般的な MSBuild 項目メタデータ > https://docs.microsoft.com/ja-jp/visualstudio/msbuild/common-msbuild-item-metadata > プロパティ関数 > https://docs.microsoft.com/ja-jp/visualstudio/msbuild/property-functions > ワイルドカードを使用して項目を指定する > https://docs.microsoft.com/ja-jp/visualstudio/msbuild/msbuild-items#use-wildcards-to-specify-items > 項目用の関数 > https://docs.microsoft.com/ja-jp/visualstudio/msbuild/item-functions ## 項目メタデータを置換して設定したい場合 ```xml= $([System.String]::Copy('%(FileName)%(Extension)').Replace('cs','rpt')) ``` ## フォルダ単位で除外する ```xml= <PropertyGroup> <TargetBaseDir>zzzz\</TargetBaseDir> </PropertyGroup> <ItemGroup> <Compile Remove="$(TargetBaseDir)**\client\**" /> <Compile Remove="$(TargetBaseDir)**\control\**" /> <Compile Remove="$(TargetBaseDir)**\data\win\**" /> <Compile Remove="$(TargetBaseDir)**\dialog\**" /> <Compile Remove="$(TargetBaseDir)**\form\**" /> <Compile Remove="$(TargetBaseDir)**\process\**" /> <Compile Remove="$(TargetBaseDir)**\usercontrol\**" /> <Compile Remove="$(TargetBaseDir)**\form\**" /> <Compile Remove="$(TargetBaseDir)**\process\**" /> <Compile Remove="$(TargetBaseDir)**\usercontrol\**" /> <Compile Remove="$(TargetBaseDir)**\util\win\**" /> <Compile Remove="$(TargetBaseDir)**\behavior\**" /> <Compile Remove="$(TargetBaseDir)**\selector\**" /> <Compile Remove="$(TargetBaseDir)**\style\**" /> <Compile Remove="$(TargetBaseDir)**\view\**" /> <Compile Remove="$(TargetBaseDir)**\viewmodel\**" /> <Compile Remove="$(TargetBaseDir)**\report\**" /> <Compile Remove="$(TargetBaseDir)**\manager\win\**" /> <Compile Remove="$(TargetBaseDir)**\parameter\win\**" /> <EmbeddedResource Remove="$(TargetBaseDir)**\client\**" /> <EmbeddedResource Remove="$(TargetBaseDir)**\control\**" /> <EmbeddedResource Remove="$(TargetBaseDir)**\data\win\**" /> <EmbeddedResource Remove="$(TargetBaseDir)**\dialog\**" /> <EmbeddedResource Remove="$(TargetBaseDir)**\form\**" /> <EmbeddedResource Remove="$(TargetBaseDir)**\process\**" /> <EmbeddedResource Remove="$(TargetBaseDir)**\usercontrol\**" /> <EmbeddedResource Remove="$(TargetBaseDir)**\form\**" /> <EmbeddedResource Remove="$(TargetBaseDir)**\process\**" /> <EmbeddedResource Remove="$(TargetBaseDir)**\usercontrol\**" /> <EmbeddedResource Remove="$(TargetBaseDir)**\util\win\**" /> <EmbeddedResource Remove="$(TargetBaseDir)**\behavior\**" /> <EmbeddedResource Remove="$(TargetBaseDir)**\selector\**" /> <EmbeddedResource Remove="$(TargetBaseDir)**\style\**" /> <EmbeddedResource Remove="$(TargetBaseDir)**\view\**" /> <EmbeddedResource Remove="$(TargetBaseDir)**\viewmodel\**" /> <EmbeddedResource Remove="$(TargetBaseDir)**\report\**" /> <EmbeddedResource Remove="$(TargetBaseDir)**\manager\win\**" /> <EmbeddedResource Remove="$(TargetBaseDir)**\parameter\win\**" /> <None Remove="$(TargetBaseDir)**\client\**" /> <None Remove="$(TargetBaseDir)**\control\**" /> <None Remove="$(TargetBaseDir)**\data\win\**" /> <None Remove="$(TargetBaseDir)**\dialog\**" /> <None Remove="$(TargetBaseDir)**\form\**" /> <None Remove="$(TargetBaseDir)**\process\**" /> <None Remove="$(TargetBaseDir)**\usercontrol\**" /> <None Remove="$(TargetBaseDir)**\form\**" /> <None Remove="$(TargetBaseDir)**\process\**" /> <None Remove="$(TargetBaseDir)**\usercontrol\**" /> <None Remove="$(TargetBaseDir)**\util\win\**" /> <None Remove="$(TargetBaseDir)**\behavior\**" /> <None Remove="$(TargetBaseDir)**\selector\**" /> <None Remove="$(TargetBaseDir)**\style\**" /> <None Remove="$(TargetBaseDir)**\view\**" /> <None Remove="$(TargetBaseDir)**\viewmodel\**" /> <None Remove="$(TargetBaseDir)**\report\**" /> <None Remove="$(TargetBaseDir)**\manager\win\**" /> <None Remove="$(TargetBaseDir)**\parameter\win\**" /> </ItemGroup> ``` ## リソース関係を除外 ```xml= <ItemGroup> <Compile Remove="Resources\**" /> <EmbeddedResource Remove="Resources\**" /> <None Remove="Resources\**" /> </ItemGroup> <ItemGroup> <Compile Remove="Properties\Resources.Designer.cs" /> <EmbeddedResource Remove="Properties\Resources.resx" /> </ItemGroup> ``` ## 型付DataSetを一括で設定 ```xml= <ItemGroup> <Compile Update="**\dataset\**\*.Designer.cs"> <DesignTime>True</DesignTime> <AutoGen>True</AutoGen> <DependentUpon>$([System.String]::Copy('%(FileName)').Replace('.Designer','.xsd'))</DependentUpon> </Compile> <None Update="**\dataset\**\*.xsd"> <SubType>Designer</SubType> <Generator>MSDataSetGenerator</Generator> <LastGenOutput>%(FileName).Designer.cs</LastGenOutput> </None> <None Update="**\dataset\**\*.xsc"> <DependentUpon>%(FileName).xsd</DependentUpon> </None> </ItemGroup> ``` ## リソース関係を一括で設定 ```xml= <ItemGroup> <Compile Update="**\Resource*.Designer.cs"> <AutoGen>True</AutoGen> <DesignTime>True</DesignTime> <DependentUpon>$([System.String]::Copy('%(FileName)').Replace('.Designer','.resx'))</DependentUpon> </Compile> <EmbeddedResource Update="**\Resource*.resx"> <Generator>PublicResXFileCodeGenerator</Generator> <LastGenOutput>%(FileName).Designer.cs</LastGenOutput> <SubType>Designer</SubType> </EmbeddedResource> </ItemGroup> ``` ```xml= <ItemGroup> <EmbeddedResource Update="**\dialog\**\*.resx"> <DependentUpon>%(FileName).cs</DependentUpon> </EmbeddedResource> <EmbeddedResource Update="**\form\**\*.resx"> <DependentUpon>%(FileName).cs</DependentUpon> </EmbeddedResource> <EmbeddedResource Update="**\usercontrol\**\*.resx"> <DependentUpon>%(FileName).cs</DependentUpon> </EmbeddedResource> <EmbeddedResource Update="**\report\**\*.resx"> <DependentUpon>%(FileName).cs</DependentUpon> </EmbeddedResource> <EmbeddedResource Update="**\component\**\*.resx"> <DependentUpon>%(FileName).cs</DependentUpon> </EmbeddedResource> <EmbeddedResource Update="**\control\**\*.resx"> <DependentUpon>%(FileName).cs</DependentUpon> </EmbeddedResource> <EmbeddedResource Update="**\window\**\*.resx"> <DependentUpon>%(FileName).cs</DependentUpon> </EmbeddedResource> </ItemGroup> ``` ## `Crystal Reports` を一括で設定 ```xml= <ItemGroup> <Compile Update="**\report\*.cs"> <AutoGen>True</AutoGen> <DesignTime>True</DesignTime> <DependentUpon>%(FileName).rpt</DependentUpon> <SubType>Component</SubType> </Compile> <EmbeddedResource Include="**\report\*.rpt"> <Generator>CrystalDecisions.VSDesigner.CodeGen.ReportCodeGenerator</Generator> <LastGenOutput>%(FileName).cs</LastGenOutput> </EmbeddedResource> </ItemGroup> ``` :::info レポートファイルの、`EmbeddedResource` は`Update`ではダメ。`Include`とする必要がある。 ::: ## XAML を一括で設定 ```xml= <ItemGroup> <Compile Update="**\**.xaml.cs"> <DependentUpon>%(FileName)</DependentUpon> </Compile> <Page Update="**\*.xaml"> <Generator>MSBuild:Compile</Generator> <SubType>Designer</SubType> </Page> </ItemGroup> ``` ## ActiveReportsを一括で設定 ```xml= <ItemGroup> <Compile Update="**\report\**.Designer.cs"> <DependentUpon>$([System.String]::Copy('%(FileName)').Replace('.Designer','.cs'))</DependentUpon> </Compile> <EmbeddedResource Update="**\report\*.resx"> <DependentUpon>%(FileName).cs</DependentUpon> </EmbeddedResource> </ItemGroup> ``` ## MicrosoftReports を一括で設定 ```xml= <ItemGroup> <EmbeddedResource Include="**\*.rdlc" /> </ItemGroup> ``` ## SSRS を一括で設定 ```xml= <ItemGroup> <None Include="Connected Services\**\*.wsdl" /> <WCFMetadata Include="Connected Services\" /> <WCFMetadataStorage Include="Connected Services\ReportExecution2005\" /> <WCFMetadataStorage Include="Connected Services\ReportService2010\" /> <Compile Update="Connected Services\**\*.cs"> <AutoGen>True</AutoGen> <DesignTime>True</DesignTime> <DependentUpon>Reference.svcmap</DependentUpon> </Compile> <None Update="Connected Services\**\*.datasource"> <DependentUpon>Reference.svcmap</DependentUpon> </None> <None Include="Connected Services\**\Reference.svcmap"> <Generator>WCF Proxy Generator</Generator> <LastGenOutput>Reference.cs</LastGenOutput> </None> <None Include="Connected Services\**\*.svcinfo" /> </ItemGroup> ``` ###### tags: `MSBuild` `csproj` `ItemGroup` `MSBuild 項目` `SDKスタイル`
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up