SharePoint プロジェクトに追加するカスタム アイテム テンプレートがあります。プロジェクトに他の機能が既に含まれている場合でも、自分のモジュールが自分の機能にのみ関連付けられていることを確認する必要があります。
.feature ファイル内の要素のID を置き換えるのは、メソッド内のprojectItemReference
を変更するだけで簡単です。replacementsDictionary
RunStarted
たとえば、次のSampleModule_WebParts.feature
ファイルがあります。
<?xml version="1.0" encoding="utf-8"?>
<feature xmlns:dm0="http://schemas.microsoft.com/VisualStudio/2008/DslTools/Core" dslVersion="1.0.0.0" Id="$SampleFeatureID$" activateOnDefault="false" description="Sample Web Part" featureId="$SampleFeatureID$" scope="Site" solutionId="00000000-0000-0000-0000-000000000000" title="Contoso Intranet Sample Module Web Parts" version="" deploymentPath="$SharePoint.Project.FileNameWithoutExtension$_$SharePoint.Feature.FileNameWithoutExtension$" xmlns="http://schemas.microsoft.com/VisualStudio/2008/SharePointTools/FeatureModel">
<projectItems>
<projectItemReference itemId="$SampleModuleID$" />
</projectItems>
</feature>
メソッド内のを置き換え$SampleModuleID$
て$SampleFeatureID$
変更するのは簡単です。しかし、生成されたファイル スニペットを変更するにはどうすればよいでしょうか。replacementsDictionary
IWizard.RunStarted
.csproj
<None Include="Features\SampleModule_WebParts\SampleModule_WebParts.feature">
<FeatureId>{78185D58-6398-4ED2-B0D0-3DC20946FF8F}</FeatureId>
</None>
<Compile Include="SPItems\SampleModule\SampleWebPart\SampleWebPart.cs" />
<Compile Include="SPItems\SampleModule\SampleWebPart\SampleWebPartUserControl.ascx.cs">
<DependentUpon>SampleWebPartUserControl.ascx</DependentUpon>
<SubType>ASPXCodeBehind</SubType>
</Compile>
<Compile Include="SPItems\SampleModule\SampleWebPart\SampleWebPartUserControl.ascx.designer.cs">
<DependentUpon>SampleWebPartUserControl.ascx.cs</DependentUpon>
</Compile>
<None Include="SPItems\SampleModule\SampleWebPart\SampleWebPart.webpart" />
<None Include="SPItems\SampleModule\SampleWebPart\SharePointProjectItem.spdata">
<SharePointProjectItemId>{D982D304-E7FB-4E8C-899B-7D4096A55892}</SharePointProjectItemId>
</None>
この場合、andアイテムのFeatureId
andSharePointProjectItemId
プロパティを設定する必要があります。何もしなければ、Visual Studio はこれらの GUID を自動生成しますが、. その結果、ファイル内の参照が破損し、モジュールが間違った機能に関連付けられる可能性があります。.feature
.spdata
replacementsDictionary
.feature
これらのカスタム プロパティを設定して.csproj
、ユーザーがファイルを保存したときに保持されるようにするにはどうすればよいですか? IWizard.ProjectItemFinishedGenerating
実装する正しい方法のように思われ、ProjectItem
パラメータを調べてファイルがいつ.spdata
生成.feature
されたかを把握できますが、プロパティを設定するにはどうすればよいですか?FeatureId
SharePointProjectItemId