2013-05-04 16 views
3

我有幾個SharePoint 2010項目的Visual Studio 2010/2012解決方案。在構建或包事件中,我希望VS自動將輸出WSP和PDB文件複製到我的解決方案根目錄中的公用文件夾,因此我不必從每個項目的bin \ $(Configuration)文件夾中手動獲取它們。是否有SharePoint項目類型包名的MSBuild宏?

我增加了以下內容對每個項目文件:

<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 Project Package Name http://imageshack.us/a/img842/322/vsspprojectpackagename.png

在這個例子中,WSP將被命名爲Acme.Edms.SP.ContentTypes.WSP。

恰巧我想讓我的WSP使用與項目和程序集有所不同的名稱。但是,如果我更改軟件包名稱,則會打破使用映射到程序集名稱的$(TargetName)的CopyPackage目標。

是否有用於(SharePoint)軟件包名稱的MSBuild宏,以便我可以在我的項目文件中修復上述MSBuild元素?

更一般地說,MSBuild是否有一組特定於SharePoint項目和項目類型的宏?

相當於Macros for Build Commands and Properties的東西。

感謝

回答

0

這裏是SharePoint specific MSBuild properties列表中並沒有任何關於包的名字。所以你必須使用解決方法

首先你的包文件和PDB文件列表這樣的:

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

然後你就可以在常規的複製命令使用它。

我沒有測試它,但它應該工作。

相關問題