繁体   English   中英

如何从C#csproj文件引用解决方案的平台?

[英]How can I reference the solution's platform from a C# csproj file?

我有一些构建为AnyCPU的csproj文件,它们附带了一些为特定体系结构构建的本机组件。 这些文件需要放在同一个位置,所以我想根据当前选择的平台和配置设置输出目录:

<PropertyGroup>
  <OutputPath>$(SolutionDir)\bin\$(Configuration)_$(Platform)\</OutputPath>
</PropertyGroup>

不幸的是,因为这是在AnyCPU项目中,而不是产生$(SolutionDir)\\ bin \\ Release_x64 \\的输出目录,它产生$(SolutionDir)\\ bin \\ Release_AnyCPU的输出目录。

我想避免为这个库创建新的bitness特定版本。 我只是希望构建将文件放在正确的位置。

csproj如何知道整个构建的平台是什么?

$(Platform)值与托管项目完全无关。 它不会以任何方式影响项目的构建方式和运行方式。 决定体系结构的抖动是在运行时发生的,而不是构建时间。

任何影响的唯一设置项目+属性,生成标签,目标平台。 此设置的值不是由$(平台)确定的。 自VS2010以来,这引起了巨大的混乱。

您现在应该看到解决方案,因为平台名称无关紧要,您可以简单地使其与C ++项目的平台名称相同。 如有必要,将x64和Win32配置添加到托管项目。 删除 AnyCPU配置,因为您不再需要它。 内置+配置管理器,以确保所有项目使用相同的平台。 问题解决了。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM