2015-01-15 1 views
0

"How to handle VSTO prerequisites in SideWaffle project template"에서이어서 설치된 VSIX로 만든 새 프로젝트가 프로젝트 속성에서 게시 탭을 선택할 때 Visual Studio와 충돌합니다. 원본 프로젝트 템플릿과 새로 생성 된 프로젝트에서 프로젝트 파일에 diff를 수행하면 ProjectExtensions 노드가 새 파일을 통과하지 못하는 것처럼 보입니다. 제외되는이 막을 수있는 좋은 방법이 있나요SideWaffle을 사용하여 VSTO csproj에 누락 된 ProjectExtensions를 포함하는 방법

<Project> 
<!-- Include the build rules for a C# project. --> 
    <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" /> 
    <!-- Include additional build rules for an Office application add-in. --> 
    <Import Project="$(VSToolsPath)\OfficeTools\Microsoft.VisualStudio.Tools.Office.targets" Condition="'$(VSToolsPath)' != ''" /> 
    <!-- This section defines VSTO properties that describe the host-changeable project properties. --> 
</Project> 

:

여기에 원래의 프로젝트 파일 조각입니다 :

<Project> 
<!-- Include the build rules for a C# project. --> 
    <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" /> 
    <!-- Include additional build rules for an Office application add-in. --> 
    <Import Project="$(VSToolsPath)\OfficeTools\Microsoft.VisualStudio.Tools.Office.targets" Condition="'$(VSToolsPath)' != ''" /> 
    <!-- This section defines VSTO properties that describe the host-changeable project properties. --> 
    <ProjectExtensions> 
    <VisualStudio> 
     <FlavorProperties GUID="{BAA0C2D2-18E2-41B9-852F-F413020CAA33}"> 
     <ProjectProperties HostName="Visio" HostPackage="{29A7B9D7-A7F1-4328-8EF0-6B2D1A56B2C1}" OfficeVersion="15.0" VstxVersion="4.0" ApplicationType="Visio" Language="cs" TemplatesPath="" DebugInfoExeName="#Software\Microsoft\Office\15.0\Visio\InstallRoot\Path#visio.exe" AddItemTemplatesGuid="{51063C3A-E220-4D12-8922-BDA915ACD783}" /> 
     <Host Name="Visio" GeneratedCodeNamespace="VisioVstoTemplate" IconIndex="0"> 
      <HostItem Name="ThisAddIn" Code="ThisAddIn.cs" CanonicalName="AddIn" CanActivate="false" IconIndex="1" Blueprint="ThisAddIn.Designer.xml" GeneratedCode="ThisAddIn.Designer.cs" /> 
     </Host> 
     </FlavorProperties> 
    </VisualStudio> 
    </ProjectExtensions> 
</Project> 

... 그리고 여기에 새 프로젝트 파일에서 같은 코드 조각입니다 ?

답변

2

TemplateBuilder를 설치하면 프로젝트에 .props 파일이 속성 아래에 추가됩니다. 기본적으로 프로젝트 템플릿을 빌드 할 때 ProjectExtensions가 제거됩니다. 이 기능을 사용하지 않으려면 .props 파일에 다음 등록 정보를 추가하십시오.

<ls-enable-remove-proj-extensions>false</ls-enable-remove-proj-extensions> 
+0

위의 코드는 완벽하게 작동합니다 (false로 설정하면 오타가 되는가?) GeneratedCodeNamespace 속성도 올바르게 바뀝니다. 관심이 없으면 기본적으로 ProjectExtensions를 제거하는 이유는 무엇입니까? 다시 한번 감사드립니다. – JohnGoldsmith

+0

@JohnGoldsmith 웹 프로젝트 (및 다른 프로젝트 유형)는 해당 프로젝트 (즉, IIS Express 포트)에 대해 임시적이고 특정한 값을 저장합니다. 따라서 프로젝트가 VS에서 열릴 때 다시 만들어야합니다. –

+0

확인. 설명 주셔서 감사합니다 – JohnGoldsmith

관련 문제