在Visual Studio Community 2015 RC中编译VSIX项目

本文关键字:编译 VSIX 项目 RC 2015 Visual Studio Community | 更新日期: 2023-09-27 18:01:40

我正在尝试创建一个Visual Studio VSIX扩展,我在编译3 "Dependencies"时遇到了一个问题。

错误MSB4057: target "VSIXContainerProjectOutputGroup"项目中不存在。

错误MSB4057: target "VSIXContainerProjectOutputGroup"项目中不存在。

错误MSB4057: target "VSIXContainerProjectOutputGroup"项目中不存在。

所有三个程序集都设置为"嵌入到此vsix中"。嵌入文件夹设置为"/";下面是source.extension.vsixmanifest文件中的XML。文件:

<Dependencies>
    <Dependency Id="Microsoft.Framework.NDP" DisplayName="Microsoft .NET Framework" d:Source="Manual" Version="4.6" d:InstallSource="Download" />
    <Dependency d:Source="Project" d:ProjectName="Networking" d:InstallSource="Embed" Version="0.5" Location="|Networking;VSIXContainerProjectOutputGroup|" DisplayName="|Networking;VSIXNameProjectOutputGroup|" Id="|Networking;VSIXIdentifierProjectOutputGroup|" d:VsixSubPath="/" />
    <Dependency d:Source="Project" d:ProjectName="Utilities" d:InstallSource="Embed" Location="|Utilities;VSIXContainerProjectOutputGroup|" DisplayName="|Utilities;VSIXNameProjectOutputGroup|" Id="|Utilities;VSIXIdentifierProjectOutputGroup|" d:VsixSubPath="/" />
    <Dependency d:Source="Project" d:ProjectName="Data Model" Version="1.0" d:InstallSource="Embed" d:VsixSubPath="/" Location="|Data Model;VSIXContainerProjectOutputGroup|" DisplayName="|Data Model;VSIXNameProjectOutputGroup|" Id="|Data Model;VSIXIdentifierProjectOutputGroup|" />
  </Dependencies>

此代码需要放在单独的程序集中,以便其他项目可以引用。

我已经尝试了这个MSDN论坛问题中提到的两个建议,但都不起作用。

还有另一个不那么麻烦但可能相关的问题正在发生:每隔一段时间,这三个项目中的类和命名空间似乎消失了,我必须删除并重新添加对它们的引用。

任何帮助解决这些问题将是非常感激的;如果我能提供任何其他信息来帮助解决这些问题,请告诉我。

编辑

我试着在发布模式下重新编译,看看这是否是一个特定于配置的问题,但没有任何改变。

在Visual Studio Community 2015 RC中编译VSIX项目

我设法通过删除在扩展项目的csproj文件中指定OutputGroupsIncludedInVSIXOutputGroupsIncludedInVSIXLocal的项目引用的行来修复它,并将库更改为"资产"而不是vsixmanifest文件中的"依赖项"。

希望这能帮助到其他有同样问题的人。

如果任何依赖项是多目标。net核心框架库(即netstandard2.0;net462)在VS2017,你得到这个错误:

错误:c: ' ' ' depproj。csproj:错误MSB4057:目标"BuiltProjectOutputGroupDependencies"在项目中不存在

添加:

<AdditionalProperties>TargetFramework=net462</AdditionalProperties>

。项目参考节点中的Csproj 文件作为附加属性。

<ProjectReference Include="..'path'to'deprpoj.csproj">
    <Project>{81eab942-30aa-445e-86d6-ad6becdf804c}</Project>
       <Name>Your.Project.Name</Name>   
    <AdditionalProperties>TargetFramework=net462</AdditionalProperties>
</ProjectReference>