VS2017 MSB4057项目中不存在目标“CreateManifestResourceNames”

时间:2017-06-12 21:21:40

标签: visual-studio-2017 azure-service-fabric service-fabric-stateful

当使用VS2017创建有状态解决方案,生成标准样板代码时,生成的两个项目有两个不同的MSBuild版本。 该应用程序使用MSBuild版本1.5.0。 该服务使用MSBuild版本1.6.0(当前“最新”)。

如果我以这种方式运行解决方案,它在我的本地Service Fabric群集上运行正常。

但是当我使用NuGet将应用程序的MSBuild更新为1.6.0(因此应用程序和服务器项目都使用相同的)后,会出现以下错误。

Severity Code Description Project File Line Suppression State
Error  The OutputPath property is not set for project 'gt_strd5.sfproj'.  Please check to make sure that you have specified a valid combination of Configuration and Platform for this project.  Configuration='Debug'  P follow a project-to-project reference to this project, this project has belatform='x64'.  This error may also appear if some other project is trying toen unloaded or is not included in the solution, and the referencing project does not build using the same or an equivalent Configuration or Platform. gt_strd5 C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\MSBuild\15.0\Bin\Microsoft.Common.CurrentVersion.targets 737 

Severity Code Description Project File Line Suppression State
Error MSB4057 The target "CreateManifestResourceNames" does not exist in the project. gt_strd5 C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\MSBuild\15.0\Bin\Microsoft.Common.CurrentVersion.targets 2630

2 个答案:

答案 0 :(得分:1)

我发现在更改之后,应用程序项目文件中的一些引用继续引用MSBuild 1.5.0。在我的例子中,gt_strd5.sfproj文件包含四个需要从1.5.0更新到1.6.0的引用。请参阅以下XML中的代码段。

导入Project =“.. \ packages \ Microsoft.VisualStudio.Azure.Fabric。 MSBuild.1.5.0 \ build \ Microsoft.VisualStudio.Azure.Fabric.Application.props”Condition =“存在(” .. \包\ Microsoft.VisualStudio.Azure.Fabric。的 MSBuild.1.5.0 \建立\ Microsoft.VisualStudio.Azure.Fabric.Application.props')” ..... Import Project =“.. \ packages \ Microsoft.VisualStudio.Azure.Fabric。 MSBuild.1.5.0 \ build \ Microsoft.VisualStudio.Azure.Fabric.Application.targets”Condition =“Exists(' .. \包\ Microsoft.VisualStudio.Azure.Fabric。的 MSBuild.1.5.0 \建立\ Microsoft.VisualStudio.Azure.Fabric.Application.targets')“

为了验证这一点,我回去了几次,并且能够重现问题和这个解决方案。

希望能节省一些时间。 最诚挚的问候

答案 1 :(得分:1)

我将此错误输入到 PCF 控制中。

运行开发者命令提示符 VS2017/VS2019

a) 从您的文件夹中删除空格,例如 Test%20-%20PCFs(源代码管理生成的名称)应该是 TestPCFs

b) 从 cmd 行转到 pcf 项目文件夹并运行 msbuild /t:restore

b) 从 cmd 行转到 cds 项目文件夹并运行 msbuild /t:restore

c) 在 cds 项目文件夹中,运行 msbuild

d) 对于发布部署运行 msbuild /p:configuration=Release

对于其他类型的项目

a) 删除文件夹名称中的空格

b) 运行 msbuild /t:restore

c) 运行 msbuild