未为项目设置OutputPath属性

Sac*_*nth 60 msbuild jenkins

构建我的Jenkins/MSBuild解决方案给了我这个错误

c:\WINDOWS\Microsoft.NET\Framework\v4.0.30319\Microsoft.Common.targets(483,9): error : 
The OutputPath property is not set for project '<projectname>.csproj'.  Please check to
make sure that you have specified a valid combination of Configuration and Platform 
for this project.  Configuration='Latest'  Platform='AnyCPU'.  You may be seeing this 
message because you are trying to build a project without a solution file, and have
specified a non-default Configuration or Platform that doesn't exist for this project. 
[C:\<path>\<projectname>.csproj]
Run Code Online (Sandbox Code Playgroud)

有任何想法吗?

编辑

我在.csproj文件中有这个

  <PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Latest|AnyCPU'">
    <OutputPath>bin\Latest\</OutputPath>
  </PropertyGroup>
Run Code Online (Sandbox Code Playgroud)

Jam*_*den 53

在文本编辑器中打开你的csproj,看看你是否有一个属性组部分,看起来应该是这样的:

<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Latest|AnyCPU' ">
    <DebugSymbols>true</DebugSymbols>
    <DebugType>full</DebugType>
    <Optimize>false</Optimize>
    <OutputPath>bin\Latest\</OutputPath>
    <DefineConstants>DEBUG;TRACE</DefineConstants>
    <ErrorReport>prompt</ErrorReport>
    <WarningLevel>4</WarningLevel>
    <TreatWarningsAsErrors>true</TreatWarningsAsErrors>
  </PropertyGroup>
Run Code Online (Sandbox Code Playgroud)

你有'最新'的构建配置吗?如果没有将上面的部分添加到csproj.

  • 这是一个怎样的答案?这是一个偏离问题的问题. (21认同)
  • 也许你只是不明白这就是答案. (9认同)
  • 我有几次同样的问题; 但我确实有配置PropertyGroup,问题?它几乎位于文件的底部......无论如何,我在默认的'Debug | AnyCPU'配置之后将它移动到顶部并且这样做了. (7认同)
  • 对我来说,csproj文件没问题.问题不在于传递''/ p:Platform = AnyCPU''请参阅@saurabh答案[传递平台参数](/sf/answers/3171398541/) (3认同)
  • @AlLelopath您应该只添加一个新的属性组部分,而不是编辑现有的部分. (2认同)
  • 我的实际上缺少 &lt;OutputPath&gt; 标签!这怎么可能,Visual Studio 可以在界面中显示一个值,这对我来说是一个奇迹,但手动添加它,现在它可以工作了!耶! (2认同)

小智 38

我已经弄清楚它是如何工作的(不改变VS2013/2015中的sln/csproj属性).

  1. 如果你想构建.sln文件----/p:ConfigurationPlatforms = Release/p:Platform ="任何CPU",如果你想构建.csproj文件----/p:Configuration = Release/p:Platform = AnyCPU注意到"Any CPU"与AnyCPU

  2. 检查代码分析,fxcop,测试覆盖率(NCover)目标.以及MSBUILD应该正确定位.在我的情况下,它是"C:\ Windows\Microsoft.NET\Framework64\v4.0.30319",但它可以是不同的,因为你可以看到微软提供了6厘米的选项来构建代码库:: AMD(与交叉plt,x86& x64选项)和Windows(交叉,x86,x64)以及使用默认JIT进行代码开发时(也可以是PreJIT ngen.exe,econoJIT)

我认为使用power shell + msbuild可以处理更多故障排除.可能对某人有帮助......

  • 我希望这一回应能获得更多选票.我正确设置了配置,问题是我在执行构建时没有传递'/ p:Platform = AnyCPU'参数(在构建机器上).通过论证解决了这个问题.谢谢@Saurabh (5认同)
  • 那个空间!在 TFS 2017 中,我必须转到我的构建的变量选项卡并将“Any CPU”更改为“AnyCPU” (2认同)

小智 15

正如perlyking所提到的,而不是编辑csproj XML以下为我工作.以下是我使用的步骤.

  1. 打开"项目属性".
  2. 选择"构建"选项卡.
  3. 在"输出"部分下,检查是否已设置输出路径.(如果没有设置,保存项目,它应该工作).
  4. 如果已设置,请单击输出路径的"浏览..."按钮.
  5. 当文件夹选择对话框打开时,在文件浏览器中向上导航一级,然后重新选择输出文件夹并单击"选择文件夹"按钮.
  6. 保存项目属性,它应该工作.


per*_*ing 7

为了添加@James所说的内容,我发现如果我查看VS2013中的项目Compile属性,指定了Build Output Path .但是当我.csproj直接检查文件时,OutputPath相关构建配置缺少该元素.所以在VS中,我只是简单地制作并反转了对输出路径的次要编辑,保存了它,并将值放入项目文件中,然后我就可以构建了.

  • 5 年后......VS2019 这仍然是一个问题 - 而且这个修复仍然有效。谢谢。 (2认同)