使用自定义 json 配置文件时出现以下错误。
严重性代码说明项目文件行抑制状态 错误 "SlowCheetah.TransformTask"任务意外失败。 System.UnauthorizedAccessException:对路径"D:\Data\...\Settings.Release.json"的访问被拒绝。 at System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath( at System.IO.FileStream.Init(字符串路径、FileMode mode、FileAccess access、Int32 权限、布尔使用权限、文件共享共享、Int32 bufferSize、FileOptions options、SECURITY_ATTRIBUTES secAttrs、String msgPath、Boolean bFromProxy、Boolean useLongPath、Boolean checkHost( 在System.IO.FileStream..ctor(字符串路径、文件模式模式、文件访问访问、文件共享共享( at Microsoft.VisualStudio.Jdt.JsonTransformation..ctor(String transformFile, IJsonTransformationLogger logger( at Microsoft.VisualStudio.SlowCheetah.JsonTransformer.Transform(String sourcePath, String transformPath, String destinationPath( at Microsoft.VisualStudio.SlowCheetah.TransformTask.Execute(( at Microsoft.Build.BackEnd.TaskExecutionHost.Microsoft.Build.BackEnd.ITaskExecutionHost.Execute(( at Microsoft.Build.BackEnd.TaskBuilder.d__26.MoveNext(( OzCruisingHangfireAgent.Program
此致敬意
达莫达尔
这是一个已知问题。
SlowCheetah v3.1.66 中的 JSON 转换器尚不支持源文件或转换文件为只读。
请参阅以下问题:
https://github.com/Microsoft/slow-cheetah/issues/86
https://github.com/Microsoft/json-document-transforms/issues/16
合并后的PR#17修复了Microsoft.VisualStudio.Jdt,但尚未发布。
以下是一些解决方法:
- 使所有文件在签出源代码管理时可写。
- 在转换之前调用 Attrib MSBuild 任务以删除只读文件属性。
例如:
<Attrib Files="D:Data…Settings.Release.json" Normal="true"/>
- 在转换之前调用 Exec MSBuild 任务以删除只读文件属性。
例如:
<Exec Command="attrib -R "D:Data…Settings.Release.json""/>