你好,这是我第一次使用msbuild,我似乎无法将其编译为dll,我一直在获取



错误和iv搜索无处不在,似乎没有解决方案,iv尝试在不同的机器上仍然是相同的错误,并且我检查了环境变量,似乎没有影响它,我还确保proj文件包含bin \ Debug \任何人都可以告诉我我哪里错了?即时通讯陷入困境。抱歉,如果我没有太多意义,我对此非常陌生并且学习。

最佳答案

您的.csproj文件应包含<OutputPath>bin\Debug\</OutputPath>。当Visual Studio创建项目文件时,它将<OutputPath>放入由Configuration和Platform组合条件的<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用作Configuration的默认值,将AnyCPU用作Platform的默认值,就像您的错误消息所说的那样。

因此,显然,您的项目文件没有包含Debug | AnyCPU组合的<PropertyGroup><OutputPath>

强制它的一种简单方法是为OutputPath属性提供一个值作为命令行开关:
MSBuild my.csproj /p:OutputPath=bin\Debug\

问题可能在于通常包含<PropertyGroup><OutputPath>也具有可能需要的更多选项,因此您可能只需要在项目文件中找到Configuration和Platform的有效组合即可。找到这样的组合后,您可以使用相同的命令行开关相应地设置属性:
MSBuild my.csproj /p:Configuration=Release /p:Platform=x86

10-07 16:25