【问题标题】:First time with msbuild第一次使用 msbuild
【发布时间】:2012-09-08 03:28:53
【问题描述】:

你好,这是我第一次使用 msbuild,我似乎无法将它编译为 dll,我一直得到一个

C:\Windows\Microsoft.NET\Framework\v2.0.50727\Microsoft.Common.targets(490,9): e rror : 没有为此项目设置 OutputPath 属性。请检查以制作 e 确保您指定了有效的配置/平台组合。会议 iguration='Debug' Platform='任何 CPU'

错误和 iv 到处搜索,似乎没有解决方案有效,iv 在不同的机器上尝试了仍然相同的错误,我检查了环境变量,似乎没有一个影响它我确保 proj 文件包含 bin\Debug\ 可以任何人请告诉我我哪里出错了?我难住了。抱歉,如果我没有多大意义,我只是对此和学习非常陌生。

【问题讨论】:

  • 项目在 Visual Studio 中构建是否正常?如果是这样,则 csproj 文件是一个 msbuild 脚本,您可以从中复制该脚本。
  • 以前使用统一引擎进行构建,需要从 c# 脚本重建单个 dll 文件,但我不想重做整个事情,所以我有一个 csproj 用于需要的 dll被编译并且我试图将 msbuild 与那个 proj 文件一起使用,希望对您有帮助吗?

标签: c# windows msbuild compiler-errors


【解决方案1】:

您的 .csproj 文件应包含 <OutputPath>bin\Debug\</OutputPath>。当 Visual Studio 创建项目文件时,它会将 <OutputPath> 放入由配置和平台组合限定的 <PropertyGroup> 元素中,如下所示:

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

现在,如果您从不带参数的命令行运行 MSBuild,它将使用 Debug 作为 ConfigurationAnyCPU 的默认值 Platform,就像您的错误消息所述。

因此,显然,您的项目文件中没有包含用于 Debug|AnyCPU 组合的 &lt;OutputPath&gt;&lt;PropertyGroup&gt;

强制它的一种简单方法是为 OutputPath 属性提供一个值作为命令行开关:

MSBuild my.csproj /p:OutputPath=bin\Debug\

问题可能是通常包含&lt;OutputPath&gt;&lt;PropertyGroup&gt; 还具有更多可能需要的选项,因此您可能只需要在项目文件中找到配置和平台的有效组合。找到这样的组合后,您可以使用相同的命令行开关相应地设置属性:

MSBuild my.csproj /p:Configuration=Release /p:Platform=x86

【讨论】:

    猜你喜欢
    • 2016-02-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-11-03
    • 2021-09-30
    • 1970-01-01
    • 2018-12-17
    相关资源
    最近更新 更多