我有一个标准的VSIX项目,它在同一个解决方案中对类库项目进行项目依赖。在将类库转换为新的VS2017RC简化版csproj之前,一切正常。类库构建正常(我的dotnet SDK是1.0.0-preview4-004233),但在尝试构建VSIX时我得到:
error MSB4057: The target "BuiltProjectOutputGroupDependencies" does not exist in the project.
这显然与传统的VSIX csproj不兼容,期望新csproj无法提供的依赖项目。
有没有人碰到这个或有任何关于解决它的建议?我将研究删除项目引用并手动引用输出DLL。
作为一个相关的附注,它不清楚VSIX将从类库中选择哪个输出DLL,因为新的csproj支持多个目标框架。
答案 0 :(得分:7)
如上所述on the GitHub issue,这是一个解决方法:
.csproj
文件。<ProjectReference>
。<AdditionalProperties>TargetFramework=net452</AdditionalProperties>
。答案 1 :(得分:0)
我相信您可能会遇到与我尝试从针对多个框架的.NET标准库引用我的Visual Studio扩展时遇到的相同问题。关于它有一个GitHub问题dotnet/sdk#433。
我要做的就是删除我的其他目标。就我而言,我有:
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFrameworks>netstandard1.3;net46</TargetFrameworks>
</PropertyGroup>
...
</Project>
我必须将其修改为仅针对netstandard1.3(因为它根据.NET Standard chart与.NET 4.6兼容)并且我的VSIX以.NET 4.6为目标。
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>netstandard1.3</TargetFramework>
</PropertyGroup>
...
</Project>