Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/batch-file/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# Paket访问被拒绝_C#_Batch File_F# Fake_Paket - Fatal编程技术网

C# Paket访问被拒绝

C# Paket访问被拒绝,c#,batch-file,f#-fake,paket,C#,Batch File,F# Fake,Paket,当Paket试图为我的项目打包DLL时,我遇到了一个问题,我得到了一个“Paket失败:拒绝访问路径”,我有以下配置 在VisualStudio的后期生成事件中,我调用了一个bat文件来调用该脚本以进行伪造 build.bat @ECHO off cls SET TargetName=%1 SET BuildMode=%2 SET SolutionDir=%~dp0 rem Get latests version of Paket "%~dp0.paket\paket.bootstrapp

当Paket试图为我的项目打包DLL时,我遇到了一个问题,我得到了一个“Paket失败:拒绝访问路径”,我有以下配置

在VisualStudio的后期生成事件中,我调用了一个bat文件来调用该脚本以进行伪造

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"
我在这里完全迷路了,谷歌也帮不上忙,你知道为什么paket会失败吗?
提前感谢,任何想法都会好起来。

发现问题。。。在目标“CreatePackage”中,我在TemplateFile字段中使用了该文件的路径,不包括文件的实际名称

这就是“修复”


您知道如果跳过TemplateFile参数,paket将扫描WorkingDir中paket.template文件的所有子文件夹,并为您创建所有包吗?
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
        })
)