Visual Studio 2019 .csproj中如何避免硬编码DocumentationFile路径
解决方案
你可以通过两种方式解决路径硬编码的问题:
方案1:使用相对路径(首推,兼容性最好)
DocumentationFile的路径默认是相对于当前.csproj文件所在目录解析的,你完全不需要写绝对路径,直接配置相对路径即可,不管团队成员把仓库克隆到本地哪个位置都可以正常识别:
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|AnyCPU'"> <!-- 直接写文件名,xml会生成在项目根目录 --> <DocumentationFile>你的项目程序集名.xml</DocumentationFile> <!-- 如果要跟随编译输出到bin目录,也可以用内置的输出路径变量 --> <!-- <DocumentationFile>$(OutputPath)\你的项目程序集名.xml</DocumentationFile> --> </PropertyGroup>
注:你原配置中的路径末尾只有
.xml,缺少程序集名前缀,属于配置疏漏,修正后可以避免生成无名的xml文件。
方案2:使用用户目录变量适配固定路径
如果你的业务场景确实要求文档文件必须存放在用户目录下的固定路径,可以使用MSBuild预定义的$(UserProfile)变量,它会自动解析为当前登录用户的主目录(对应C:\Users\当前用户名):
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|AnyCPU'"> <DocumentationFile>$(UserProfile)\source\repos\orgName\solutionName\projectName\你的项目程序集名.xml</DocumentationFile> </PropertyGroup>
补充说明
- 除了
$(UserProfile),你还可以用$(ProjectDir)(当前项目目录)、$(SolutionDir)(当前解决方案目录)这类内置变量实现更灵活的路径配置,都不需要硬编码本地路径。 - 所有
$开头的MSBuild预定义变量在所有安装了Visual Studio或者.NET SDK的环境下都可以直接识别,不需要额外配置。
内容的提问来源于stack exchange,提问作者user266909
相关产品推荐
相关产品推荐

