"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>
... 그리고 여기에 새 프로젝트 파일에서 같은 코드 조각입니다 ?
위의 코드는 완벽하게 작동합니다 (false로 설정하면 오타가 되는가?) GeneratedCodeNamespace 속성도 올바르게 바뀝니다. 관심이 없으면 기본적으로 ProjectExtensions를 제거하는 이유는 무엇입니까? 다시 한번 감사드립니다. – JohnGoldsmith
@JohnGoldsmith 웹 프로젝트 (및 다른 프로젝트 유형)는 해당 프로젝트 (즉, IIS Express 포트)에 대해 임시적이고 특정한 값을 저장합니다. 따라서 프로젝트가 VS에서 열릴 때 다시 만들어야합니다. –
확인. 설명 주셔서 감사합니다 – JohnGoldsmith