2017-01-24 27 views
5

У меня есть стандартный проект VSIX, который зависит от проекта от проекта библиотеки классов в том же решении. Все было прекрасно, пока я не переключил библиотеку классов на новый VS2017RC, упрощенный csproj. Библиотека классов строит штраф (мой DotNet SDK 1.0.0-preview4-004233), но при попытке построить VSIX я получаю:Отсутствует здание «BuiltProjectOutputGroupDependencies» VSIX в зависимости от нового упрощенного csproj

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

Это, очевидно, выглядит как несовместимость с традиционным VSIX csproj ожидает что-то из зависимых проектов, которые новый csproj не предоставляет.

Кто-нибудь столкнулся с этим или имел какие-либо советы по работе вокруг него? Я собираюсь изучить удаление ссылки на проект и вручную ссылаться на выходную DLL.

Как связанное примечание, неясно, какая выходная DLL, которую VSIX будет выбирать из библиотеки классов, поскольку новый csproj поддерживает несколько целевых фреймворков.

ответ

0

Я считаю, что вы столкнулись с той же проблемой, с которой я столкнулся, когда пытались ссылаться на расширение Visual Studio из библиотеки .NET Standard, которая была нацелена на несколько фреймворков. Существует проблема GitHub dotnet/sdk#433.

Что мне нужно было сделать, так это удалить мои другие цели. В моем случае, у меня было:

<Project Sdk="Microsoft.NET.Sdk"> 
    <PropertyGroup> 
     <TargetFrameworks>netstandard1.3;net46</TargetFrameworks> 
    </PropertyGroup>  
    ... 
</Project> 

И мне пришлось изменить его только целевой netstandard1.3 (так как он совместим с .NET 4.6 в соответствии с .NET Standard chart) и мои VSIX цели .NET 4.6.

<Project Sdk="Microsoft.NET.Sdk"> 
    <PropertyGroup> 
     <TargetFramework>netstandard1.3</TargetFramework> 
    </PropertyGroup> 
    ... 
</Project> 
4

Как указано on the GitHub issue, вот обходной путь:

  1. выгрузить проект VSIX.
  2. Щелкните правой кнопкой мыши и отредактируйте файл .csproj.
  3. Найти <ProjectReference> проекту, который вызвал проблему.
  4. Добавьте элемент <AdditionalProperties>TargetFramework=net452</AdditionalProperties>, используя правильную версию .NET Framework, на которую вы нацелились в указанном проекте.
  5. Перезагрузите VSIX projjct.
+0

Это решение действительно. – Shrike

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

  • Нет связанных вопросов^_^