gpt4 book ai didi

c# - .csproj 如何知道它的解决方案?

转载 作者:太空狗 更新时间:2023-10-29 22:30:49 25 4
gpt4 key购买 nike

在 .csproj 文件中,您可以使用 $(SolutionDir) 等变量。可以通过这种方式找到图书馆。

如何通过 msbuild 构建 .csproj(不提供解决方案路径)?我看不出这种行为有任何意义,但它仍然有效。

最佳答案

单个项目文件知道它们属于哪个解决方案。变量 $(SolutionDir)、$(SolutionPath)、$(SolutionExt) 等仅在构建 .sln 文件时定义,直接构建项目时未定义。

为了说明这一点,将其放入您的项目文件中:

<Target Name="BeforeBuild">
<Message Text="SolutionDir=$(SolutionDir)" />
</Target>

当您构建解决方案时,您会得到:

>msbuild sln.sln
Microsoft (R) Build Engine version 12.0.31101.0
...
BeforeBuild:
SolutionDir=e:\temp\sln\
...

当您直接构建项目时,您会得到:

>msbuild fs\fs.fsproj
Microsoft (R) Build Engine version 12.0.31101.0
...
BeforeBuild:
SolutionDir=*Undefined*
...

如您所见,$(SolutionDir) 已严重损坏。我不建议将它与其他 $(Solution***) 变量一起使用,因为您有时会希望直接构建项目,或者在其他目录中使用项目的不同子集创建新的 .sln 文件,然后你会遇到构建中断。

关于c# - .csproj 如何知道它的解决方案?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28196339/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com