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

时间:2012-08-24 17:49:01

标签: visual-studio-2012 f# visual-studio-2013

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

  

错误1未为项目' TestingF.fsproj'设置OutputPath属性。请检查以确保您为此项目指定了有效的配置和平台组合。配置='调试'平台='&#39 ;.如果某个其他项目正在尝试遵循项目到项目对此项目的引用,此项目已卸载或未包含在解决方案中,并且引用项目不使用相同或等效项目构建,则也可能出现此错误配置或平台。 C:\ Windows \ Microsoft.NET \ Framework \ v4.0.30319 \ 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>bin\Debug\</OutputPath>
<DefineConstants>DEBUG;TRACE</DefineConstants>
<WarningLevel>3</WarningLevel>
<PlatformTarget>AnyCPU</PlatformTarget>
<DocumentationFile>bin\Debug\TestingF.XML</DocumentationFile>
<Prefer32Bit>true</Prefer32Bit>
</PropertyGroup>

使用任何其他.Net语言都不会发生同样的错误。

2 个答案:

答案 0 :(得分:5)

以防其他人遇到此问题,此处如何解决此问题

问题类似于Gustavo在上一个答案中解决的问题,但对于 F#项目,似乎还有另外一个问题需要解决。
我在 VS2013 Update 2 中遇到了这个问题。编辑平台设置,在 Configuration Manager 中添加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标记( Debug | x64或Release | x64 )向下在文件中。

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

答案 1 :(得分:1)

看一下错误:

  

[...]确保您已为此项目指定了Configuration和Platform的有效组合。 Configuration ='Debug'Blatter =''。此错误也可能出现[...]

Visual Studio正在尝试构建Platform ='',Configuration ='Debug'。但是,您发布的项目文件指定了以下配置:

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

也就是说,它告诉Visual Studio如何构建'Debug'/'AnyCPU',而不是'Debug'/''。

如果您在其中插入'AnyCPU',它应该会为您提供您正在寻找的结果。

可以在此处找到更详细的答案:https://stackoverflow.com/a/13372073/556595