3

複数の SharePoint 2010 プロジェクトを含む Visual Studio 2010/2012 ソリューションがあります。ビルドまたはパッケージ イベントで、VS が出力 WSP ファイルと PDB ファイルをソリューションのルートにある共通フォルダーに自動コピーするようにしたいので、各プロジェクトの bin\$(Configuration) フォルダーから手動で取得する必要はありません。

各プロジェクト ファイルに次の要素を追加しました。

<Target Name="CopyPackage">
  <Exec WorkingDirectory="$(PackagePath)" Command="copy &quot;$(TargetDir)$(TargetName).wsp&quot; &quot;$(SolutionDir)Builds\$(TargetName).wsp&quot;" ContinueOnError="False" />
  <Exec WorkingDirectory="$(PackagePath)" Command="copy &quot;$(TargetDir)$(TargetName).pdb&quot; &quot;$(SolutionDir)Builds\$(TargetName).pdb&quot;" 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 に相当するもの。

ありがとう

4

1 に答える 1

0

これはSharePoint 固有の MSBuild プロパティのリストであり、パッケージ名については何もありません。したがって、そのための回避策を使用する必要があります。

まず、次のようにパッケージ ファイルと pdb ファイルのリストを取得します。

<ItemGroup>
    <PackageFiles Include="$(BasePackagePath)\*.$(PackageExtension)" />
    <PdbFiles Include="$(BasePackagePath)\*.pdb)" />
</ItemGroup>

そして、通常のコピーコマンドで使用できます。

私はそれをテストしませんでしたが、動作するはずです。

于 2013-08-17T21:57:20.557 に答える