是否可以为VSTO Addin项目使用新的SDK样式.csproj文件



如果SDK风格的项目支持VSTO插件,我找不到任何文档。

我已经安装并使用了h.vanbrakers project2015to2017.migrate2019.tool。生成的项目文件是常用的类库,没有更多的Powerpoint插件。因此,例如,不能再从IDE启动项目进行调试。

BootStrapper包和ProjectExtension尚未转换为新的文件格式。此外,ProjectTypeGuid未传输。也许这将该项目标记为旧式项目文件中的VSTO加载项。

我很沮丧,我找不到任何声明,如果SDK风格的项目文件支持(在这种情况下如何?(或不支持(在本例中为什么?(vsto addin项目!此外,为什么没有人敢这么说/写。它会让事情变得清楚,我不必浪费时间去寻找它。。。

谢谢你的帮助,Karl

据我所知,VSTO项目文件无法转换为较新的SDK格式。这主要是因为ProjectTypeGuids

为了正确地将项目文件转换为较新的SDK格式,ProjectTypeGuids应该有一个SDK。

据我所知,您的项目文件头中没有可使用的VSTO SDK。

[编辑]

MSBuild 15.0引入了";project SDK";,这简化了需要导入属性和目标的软件开发工具包的使用。

来自上述链接的信息表明Project SDK是";标准";MSBuild道具和目标。

[编辑2]

您是否考虑过更新的基于web的加载项?

是的,可以将sdk样式的项目文件与VSTO一起使用。

显式导入Sdk.propsSdk.targets文件,并在最后导入Sdk.targets文件之后的Microsoft.VisualStudio.Tools.Office.targets文件。

以下是Excel文档级项目的示例.csproj文件:

<Project>
<Import Project="Sdk.props" Sdk="Microsoft.NET.Sdk" />
<PropertyGroup>
<TargetFramework>net48</TargetFramework>
<Version>1.0.0</Version>
<UseWindowsForms>true</UseWindowsForms>
</PropertyGroup>
<PropertyGroup>
<VisualStudioVersion Condition="'$(VisualStudioVersion)' == ''">17.0</VisualStudioVersion>
<VSToolsPath Condition="'$(VSToolsPath)' == ''">$(MSBuildExtensionsPath32)MicrosoftVisualStudiov$(VisualStudioVersion)</VSToolsPath>
</PropertyGroup>
<PropertyGroup>
<AssemblySearchPaths>$(AssemblySearchPaths);{GAC};$(VSToolsPath)........Common7IDEReferenceAssembliesv4.0</AssemblySearchPaths>
<SolutionID>617d3c65-847f-4686-98de-dc8f19428505</SolutionID>
<VSTO_HostDocumentName>MyDocument.xlsx</VSTO_HostDocumentName>
<DefineConstants>VSTO40</DefineConstants>
<OfficeApplication>Excel</OfficeApplication>
<BootstrapperEnabled>true</BootstrapperEnabled>
<BootstrapperComponentsLocation>HomeSite</BootstrapperComponentsLocation>
</PropertyGroup>
<PropertyGroup>
<SignManifests>true</SignManifests>
<ManifestKeyFile>MyDocument_TemporaryKey.pfx</ManifestKeyFile>
<ManifestCertificateThumbprint>9A4030C742EF4F638078B084ECC76C118367C6BA</ManifestCertificateThumbprint>
</PropertyGroup>
<ItemGroup>
<BootstrapperPackage Include="Microsoft.VSTORuntime.4.0">
<Visible>False</Visible>
<ProductName>Microsoft Visual Studio 2010 Tools for Office Runtime %28x86 and x64%29</ProductName>
<Install>true</Install>
</BootstrapperPackage>
</ItemGroup>
<ItemGroup>
<Reference Include="Microsoft.Office.Interop.Excel">
<EmbedInteropTypes>true</EmbedInteropTypes>
</Reference>
<Reference Include="Microsoft.Office.Tools.v4.0.Framework" />
<Reference Include="Microsoft.VisualStudio.Tools.Applications.Runtime" />
<Reference Include="Microsoft.Office.Tools" />
<Reference Include="Microsoft.Office.Tools.Common" />
<Reference Include="Microsoft.Office.Tools.Excel" />
<Reference Include="Microsoft.Office.Tools.Common.v4.0.Utilities" />
<Reference Include="Microsoft.Office.Tools.Excel.v4.0.Utilities" />
</ItemGroup>
<ItemGroup>
<None Update="MyDocument.xlsx">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
</ItemGroup>
<Import Project="Sdk.targets" Sdk="Microsoft.NET.Sdk" />
<Import Project="$(VSToolsPath)OfficeToolsMicrosoft.VisualStudio.Tools.Office.targets" Condition="'$(VSToolsPath)' != ''" />
<ProjectExtensions>
<VisualStudio>
<FlavorProperties GUID="{BAA0C2D2-18E2-41B9-852F-F413020CAA33}">
<ProjectProperties HostName="MyDocument.xlsx" HostPackage="{3F2B7691-D1D1-402F-9370-2704A737CF60}" OfficeVersion="15.0" VstxVersion="4.0" ApplicationType="XLS" Language="CS" TemplatesPath="VSTOTemplates" DebugInfoExeName="C:Program Files (x86)Microsoft OfficerootOffice16EXCEL.EXE" DebugInfoCommandLine="/x &quot;[$OUTPUT]MyDocument.xlsx&quot;" />
<Host Name="Excel Document" Path=".MyDocument.xlsx" GeneratedCodeNamespace="MyDocument">
<HostItem Name="ThisWorkbook" Code="ThisWorkbook.cs" CanonicalName="ThisWorkbook" Blueprint="ThisWorkbook.Designer.xml" GeneratedCode="ThisWorkbook.Designer.cs" />
<HostItem Name="Sheet1" Code="MyDoc.cs" CanonicalName="Sheet1" DisplayName="MyDoc" Blueprint="MyDoc.Designer.xml" GeneratedCode="MyDoc.Designer.cs" />
</Host>
</FlavorProperties>
</VisualStudio>
</ProjectExtensions>
</Project>

您似乎在使用VSTO插件和SDK风格的项目时遇到了一些问题。让我简单地为你分解一下。

因此,VSTO插件就像是一种特殊的工具,你可以将其添加到PowerPoint等程序中,让它们做额外的事情。它们是使用一种称为VSTO项目的特定类型的项目创建的。现在,有一种新风格的项目称为SDK风格的项目,它不同于旧风格的项目。

在本文中,此人表示,他们找不到任何关于SDK风格的项目是否支持VSTO插件的信息。他们提到他们使用了一种名为";h.面包车刹车项目2015年至2017年。migrate2019.工具";将其项目文件从旧样式转换为新样式。但是,在转换之后,项目文件变成了常规类库,而不是Powerpoint AddIns。这意味着他们不能再直接从IDE运行项目进行调试了。

这个人很沮丧,因为他们不知道新的SDK风格的项目文件是否真的支持VSTO插件,也不明白为什么没有人明确说明这是否可能。他们觉得自己在浪费时间寻找答案。

我希望这能为你澄清事情!如果你还有其他问题,请告诉我。

相关内容

最新更新