複数の SharePoint 2010 プロジェクトを含む Visual Studio 2010/2012 ソリューションがあります。ビルドまたはパッケージ イベントで、VS が出力 WSP ファイルと PDB ファイルをソリューションのルートにある共通フォルダーに自動コピーするようにしたいので、各プロジェクトの bin\$(Configuration) フォルダーから手動で取得する必要はありません。
各プロジェクト ファイルに次の要素を追加しました。
<Target Name="CopyPackage">
<Exec WorkingDirectory="$(PackagePath)" Command="copy "$(TargetDir)$(TargetName).wsp" "$(SolutionDir)Builds\$(TargetName).wsp"" ContinueOnError="False" />
<Exec WorkingDirectory="$(PackagePath)" Command="copy "$(TargetDir)$(TargetName).pdb" "$(SolutionDir)Builds\$(TargetName).pdb"" ContinueOnError="False" />
</Target>
<PropertyGroup>
<BuildDependsOn>$(BuildDependsOn);CreatePackage;CopyPackage</BuildDependsOn>
</PropertyGroup>
これまでのところ、うまくいきます。
各プロジェクトのパッケージ名は、出力 WSP ファイルの名前を制御し、出力アセンブリ DLL ファイルの名前とは異なる場合があります。
Visual Studio SharePoint プロジェクト パッケージ名 http://imageshack.us/a/img842/322/vsspprojectpackagename.png
この例では、WSP の名前は Acme.Edms.SP.ContentTypes.WSP になります。
プロジェクトやアセンブリとは多少異なる名前を WSP に使用させたい場合があります。しかし、パッケージ名を変更すると、アセンブリ名にマップされる $(TargetName) を使用する CopyPackage ターゲットが壊れます。
プロジェクト ファイルで上記の MSBuild 要素を修正できるように、(SharePoint) パッケージ名の MSBuild マクロはありますか?
より一般的に言えば、MSBuild には、SharePoint プロジェクトと項目の種類に固有の一連のマクロがありますか?
Macros for Build Commands and Properties に相当するもの。
ありがとう