sdg*_*sdh 7 c# msbuild f# .net-core
我使用 构建我的项目dotnet build
,目标是netcoreapp3.1
.
问题是程序集包含源文件的完整路径:
/home/runner/my-app/App.fs
Run Code Online (Sandbox Code Playgroud)
这意味着程序集的散列取决于构建代码的目录。我希望它只依赖于源文件的哈希值和 .NET SDK 本身。
有没有办法dotnet build
像这样使用相对路径?
./my-app/App.fs
Run Code Online (Sandbox Code Playgroud)
您可以使用较少的信息配置发布版本,也可以覆盖PathMap值以覆盖它。
<PropertyGroup Label="Override Stack trace file locations">
<PathMap>$([System.IO.Path]::GetFullPath('$(MSBuildThisFileDirectory)'))=./</PathMap>
</PropertyGroup>
Run Code Online (Sandbox Code Playgroud)
Directory.Build.props
项目根目录中的以下内容应该有效:
<PropertyGroup Label="Override Stack trace file locations">
<PathMap>$([System.IO.Path]::GetFullPath('$(MSBuildThisFileDirectory)'))=./</PathMap>
</PropertyGroup>
Run Code Online (Sandbox Code Playgroud)
C# 编译器 (csc) 有编译器开关-deterministic
F# 编译器 (fsc) 似乎有一个开关--deterministic+
从 DotNet SDK 存储库来看,项目文件有 2 个属性:
<Deterministic>true</Deterministic>
<DeterministicSourcePaths>true</DeterministicSourcePaths>
Run Code Online (Sandbox Code Playgroud)
您可能不需要这两个。
归档时间: |
|
查看次数: |
309 次 |
最近记录: |