伪造的 Paket 访问被拒绝
Paket access denied on Fake
我在 Paket 尝试为我的项目打包 dll 时遇到问题,我刚得到一个 "Paket failed with: Access to the path is denied",我有以下配置
在 VisualStudio 的 postbuild 事件中,我调用了一个 bat 文件来调用 fake 脚本
build.bat
@ECHO off
cls
SET TargetName=%1
SET BuildMode=%2
SET SolutionDir=%~dp0
rem Get latests version of Paket
"%~dp0.paket\paket.bootstrapper.exe"
IF errorlevel 1 (
ECHO error on paket.bootstrapper
)
rem Download the dependencies specified by the paket.lock file into the packages/ directory.
"%~dp0.paket\paket.exe" restore
IF errorlevel 1 (
ECHO error on paket.restore
)
rem ECHO Starting FAKE build.fsx
"%SolutionDir%packages\FAKE\tools\FAKE.exe" "%SolutionDir%buildPackage.fsx" -ev TargetName %TargetName% -ev BuildMode %BuildMode% -ev SolutionDir "%SolutionDir%
build.fsx
open Fake.AssemblyInfoFile
open System
open Paket
//CommandLineArguments
let TargetName = Environment.GetEnvironmentVariable("TargetName")
let SolutionDir = Environment.GetEnvironmentVariable("SolutionDir")
let BuildMode = Environment.GetEnvironmentVariable("BuildMode")
//Paths
let AssemblyFilePath = SolutionDir + TargetName + @"\Properties\AssemblyInfo.cs"
let PaketPath = SolutionDir + @".paket\paket.exe"
let PaketOutPath = @"X:\nuget\" + TargetName
let buildDir = SolutionDir + TargetName + @"\bin\Fake\" + BuildMode
//Constants
let constantSolution = SolutionDir + TargetName + @"\" + TargetName + ".csproj"
//Functions
let GetVersion =
GetAttributeValue "AssemblyVersion" AssemblyFilePath
//Targets
Target "Clean" (fun _ ->
Console.WriteLine ("Cleaning up")
CleanDir buildDir
)
Target "BuildApp" (fun _ ->
Console.WriteLine("Building application on " + buildDir)
if BuildMode = "Debug" then MSBuildDebug buildDir "Build" !! constantSolution
|> Log "AppBuild-Output:"
else MSBuildRelease buildDir "Build" !! constantSolution
|>Log "AppBuild-Output"
)
Target "CreatePackage" (fun _ ->
Pack (fun p ->
{p with
Version = GetVersion.Value
OutputPath = PaketOutPath
BuildConfig = BuildMode
ToolPath = PaketPath
TemplateFile = SolutionDir + TargetName
BuildPlatform = "x86"
WorkingDir = buildDir
})
)
Dependencies
"Clean"
==> "BuildApp"
==> "CreatePackage"
RunTargetOrDefault "CreatePackage"
我在这里完全迷路了,google 也无济于事,知道 paket 失败的原因吗?
在此先感谢,任何想法都会受到欢迎。
发现问题...在目标 "CreatePackage" 中,我在字段 TemplateFile 上使用该文件的路径,不包括文件的实际名称
这是"fix"
Target "CreatePackage" (fun _ ->
Pack (fun p ->
{p with
Version = GetVersion.Value
OutputPath = PaketOutPath
BuildConfig = BuildMode
ToolPath = PaketPath
TemplateFile = SolutionDir + TargetName + @"\paket.template"
BuildPlatform = "x86"
WorkingDir = buildDir
})
)
我在 Paket 尝试为我的项目打包 dll 时遇到问题,我刚得到一个 "Paket failed with: Access to the path is denied",我有以下配置
在 VisualStudio 的 postbuild 事件中,我调用了一个 bat 文件来调用 fake 脚本
build.bat
@ECHO off
cls
SET TargetName=%1
SET BuildMode=%2
SET SolutionDir=%~dp0
rem Get latests version of Paket
"%~dp0.paket\paket.bootstrapper.exe"
IF errorlevel 1 (
ECHO error on paket.bootstrapper
)
rem Download the dependencies specified by the paket.lock file into the packages/ directory.
"%~dp0.paket\paket.exe" restore
IF errorlevel 1 (
ECHO error on paket.restore
)
rem ECHO Starting FAKE build.fsx
"%SolutionDir%packages\FAKE\tools\FAKE.exe" "%SolutionDir%buildPackage.fsx" -ev TargetName %TargetName% -ev BuildMode %BuildMode% -ev SolutionDir "%SolutionDir%
build.fsx
open Fake.AssemblyInfoFile
open System
open Paket
//CommandLineArguments
let TargetName = Environment.GetEnvironmentVariable("TargetName")
let SolutionDir = Environment.GetEnvironmentVariable("SolutionDir")
let BuildMode = Environment.GetEnvironmentVariable("BuildMode")
//Paths
let AssemblyFilePath = SolutionDir + TargetName + @"\Properties\AssemblyInfo.cs"
let PaketPath = SolutionDir + @".paket\paket.exe"
let PaketOutPath = @"X:\nuget\" + TargetName
let buildDir = SolutionDir + TargetName + @"\bin\Fake\" + BuildMode
//Constants
let constantSolution = SolutionDir + TargetName + @"\" + TargetName + ".csproj"
//Functions
let GetVersion =
GetAttributeValue "AssemblyVersion" AssemblyFilePath
//Targets
Target "Clean" (fun _ ->
Console.WriteLine ("Cleaning up")
CleanDir buildDir
)
Target "BuildApp" (fun _ ->
Console.WriteLine("Building application on " + buildDir)
if BuildMode = "Debug" then MSBuildDebug buildDir "Build" !! constantSolution
|> Log "AppBuild-Output:"
else MSBuildRelease buildDir "Build" !! constantSolution
|>Log "AppBuild-Output"
)
Target "CreatePackage" (fun _ ->
Pack (fun p ->
{p with
Version = GetVersion.Value
OutputPath = PaketOutPath
BuildConfig = BuildMode
ToolPath = PaketPath
TemplateFile = SolutionDir + TargetName
BuildPlatform = "x86"
WorkingDir = buildDir
})
)
Dependencies
"Clean"
==> "BuildApp"
==> "CreatePackage"
RunTargetOrDefault "CreatePackage"
我在这里完全迷路了,google 也无济于事,知道 paket 失败的原因吗? 在此先感谢,任何想法都会受到欢迎。
发现问题...在目标 "CreatePackage" 中,我在字段 TemplateFile 上使用该文件的路径,不包括文件的实际名称
这是"fix"
Target "CreatePackage" (fun _ ->
Pack (fun p ->
{p with
Version = GetVersion.Value
OutputPath = PaketOutPath
BuildConfig = BuildMode
ToolPath = PaketPath
TemplateFile = SolutionDir + TargetName + @"\paket.template"
BuildPlatform = "x86"
WorkingDir = buildDir
})
)