2015-07-07 4 views
0

Я пытаюсь создать расширение VSIX Visual Studio, и у меня возникает проблема при компиляции с 3 «Зависимости», которые являются библиотеками классов C# в том же решении:Проблема компиляции проекта VSIX в Visual Studio Community 2015 RC

error MSB4057: The target "VSIXContainerProjectOutputGroup" does not exist in the project.

error MSB4057: The target "VSIXContainerProjectOutputGroup" does not exist in the project.

error MSB4057: The target "VSIXContainerProjectOutputGroup" does not exist in the project.

Все три сборки установлены в «Вставить в этот VSIX», а папка для вставки установлена ​​в «/»; вот XML в «source.extension.vsixmanifest» Файл:

<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> 

Этот код должен быть в отдельных узлов, так что он может ссылаться на другие проекты.

Я уже пробовал оба предложения, упомянутые в this Вопрос форума MSDN, и ни один из них не работал.

Существует еще одна проблема, которая может возникнуть из-за проблем, но, возможно, связана с этим: время от времени классы и пространства имен в этих трех проектах исчезают, и мне приходится удалять и повторно добавлять ссылки на них.

Любая помощь в устранении этих проблем была бы весьма признательна; сообщите мне, если я могу предоставить любую другую информацию, чтобы помочь решить их.

EDIT

Я попытался перекомпиляции в режиме выпуска, чтобы увидеть, если это была проблема конфигурации конкретного, но ничего не изменилось.

ответ

2

мне удалось это исправить, удалив строки, задающие OutputGroupsIncludedInVSIX и OutputGroupsIncludedInVSIXLocal для ссылок проекта в csproj файле проекта расширения и изменения библиотек, чтобы быть «активы» вместо «Зависимости» в vsixmanifest файле.

Надеюсь, это поможет другим людям с той же проблемой.

+0

Это ошибка в проекте VSIX. Если вы добавляете зависимость, указывающую на другие проекты в решении, она обновляет манифест следующим образом:

+0

Вы имеете в виду 'IncludeOutputGroupsInVSIX'? – StingyJack

-1

Если какой-либо из зависимостей являются многоядерный целевой платформы .NET Framework библиотеки (т.е. netstandard2.0;net462) в VS2017, и вы получите эту ошибку:

Error: c:\path\to\depproj.csproj : error MSB4057: The target "BuiltProjectOutputGroupDependencies" does not exist in the project

Добавить это:

<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> 
+0

Спасибо за ваше предложение, но стоит отметить, что этот вопрос старше .NET Core. Кроме того, для будущих ответов я предлагаю объяснить причину возникновения проблемы или, по крайней мере, почему решение работает. Если возможно. –

Смежные вопросы