我正在使用Visual Stduio 2015社区版。我已经加载了一个C#项目,并希望将其配置为使用阴影构建,因此源文件不会与任何二进制文件或中间构建文件混淆。尝试使用VS UI设置C#项目的[输出] / [中间输出]目录路径 - 唯一的UI可编辑输出路径是“bin”输出路径,它不接受MSBuild macros。然后我卸载了项目并手动编辑了它。还要设置在使用C#项目时在VS UI中不可用的IntermediateOutputPath,但在使用C ++时,所有这类目录都是可编辑的。
目前,OutputPath设置为:
<OutputPath>$(SolutionDir)..\build_$(SolutionName)_$(Configuration)_$(Platform)\$(ProjectName)</OutputPath>
$(ProjectName)
为空。尝试$(TargetName)
(使用它但不仅仅是测试),但它也是空的。有什么建议吗?
答案 0 :(得分:1)
我相信你已经解决了这个问题。我今天面对同样的事情。 问题是某些msbuild属性(如projectname)是在.csproj文件中的以下行之后设置的。
<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
在此行之后,您可以访问所有变量。
答案 1 :(得分:0)
请勿尝试导入Microsoft.CSharp.targets
-就像另一个答案中所建议的那样。
首先-这将导致其他警告,例如
Warning MSB4011: "Microsoft.CSharp.targets" cannot be imported again. ...
但是除此之外,如果您尝试编辑构建前/构建后,Visual Studio将崩溃。 (在Visual Studio 2019中已观察到,版本16.7.7)
更好地使用$(MSBuildProjectName)
宏而不是$(ProjectName)
-的工作原理相同。