没有为此项目设置Outputpath属性-F#



当我在Visual Studio 2012下创建一个新的F#应用程序并构建它时,会出现相同的错误:

错误1未为项目"TestingF.fsproj"设置OutputPath属性。请检查以确保为此项目指定了有效的配置和平台组合。配置="调试"平台="。如果其他某个项目试图遵循对该项目的项目间引用,该项目已卸载或未包含在解决方案中,并且引用项目未使用相同或等效的配置或平台生成,则也可能出现此错误。C: \Windows\Microsoft.NET\Framework\v4.0.30119\Microsoft.Common.targets 592 5 TestingF

尝试使用Configuration Manager修改Configuration|Platform,同时卸载项目并编辑.fsproj文件。

<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<DebugSymbols>true</DebugSymbols>
<DebugType>full</DebugType>
<Optimize>false</Optimize>
<Tailcalls>false</Tailcalls>
<OutputPath>binDebug</OutputPath>
<DefineConstants>DEBUG;TRACE</DefineConstants>
<WarningLevel>3</WarningLevel>
<PlatformTarget>AnyCPU</PlatformTarget>
<DocumentationFile>binDebugTestingF.XML</DocumentationFile>
<Prefer32Bit>true</Prefer32Bit>
</PropertyGroup>

使用任何其他.Net语言都从未发生过相同的错误。

万一其他人遇到这个问题,下面是如何解决它

这个问题与Gustavo在上一个答案中解决的问题类似,但对于F#项目,似乎还有另一个额外的问题需要解决
我在VS2013更新2中遇到过这个问题。编辑平台设置,在配置管理器中添加x64平台后出现问题。

该问题与.fsproj文件中某些XML标记的顺序有关。请参阅下面的正确.fsproj文件。

<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="12.0" DefaultTargets="Build" ...>
  <Import Project=.../>
  <PropertyGroup>
    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
    <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
    ...
    <RestorePackages>true</RestorePackages>
  </PropertyGroup>
  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|x64' ">
    <DebugSymbols>true</DebugSymbols>
    <DebugType>full</DebugType>
    ...
  </PropertyGroup>
  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|x64' ">
    <DebugType>pdbonly</DebugType>
    <Optimize>true</Optimize>
    <Tailcalls>true</Tailcalls>
    ...
  </PropertyGroup>
  <PropertyGroup>
    <MinimumVisualStudioVersion Condition="'$(MinimumVisualStudioVersion)' == ''">11</MinimumVisualStudioVersion>
  </PropertyGroup>

有时,在Configuration Manager中编辑配置后,配置平台的一个或多个PropertyGroup标记(调试|x64或发布|x64)会在文件中向下移动

因此,只需编辑fsproj文件并向上移动这些标记即可。例如,将它们移动到定义MinimumVisualStudioVersion的组之前,如示例所示。保存、重新加载项目并编译。

查看错误:

[…]请确保为此项目指定了配置和平台的有效组合。配置="调试"平台="。此错误也可能出现〔…〕

Visual Studio正在尝试生成平台=",配置="调试"。然而,您发布的项目文件指定了以下配置:

<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
    . . .
</PropertyGroup>

也就是说,它告诉Visual Studio如何生成"Debug"/"AnyCPU",而不是"Debug"/"。

如果你在其中插入"AnyCPU",它应该会给你你想要的结果。

这里可以找到一个更详细的答案:https://stackoverflow.com/a/13372073/556595

最新更新