【问题标题】:Powershell Pre-Build script failing from msbuildPowershell Pre-Build 脚本从 msbuild 失败
【发布时间】:2017-02-23 15:29:06
【问题描述】:

我有一个 Powershell 脚本,它作为 Xamarin 移动应用程序的预构建调用执行。该脚本更改包名称以匹配构建类型,例如调试,发布。

为了创建应用程序的不同“风格”,我编写了一个批处理文件,将应用程序的配置文件替换为与请求的构建类型匹配的配置文件。

当我在 Visual Studio 中构建时,powershell 脚本会按我的预期运行并改变我的预期。但是,当批处理文件运行时,我收到一条错误消息:

这是批处理文件的内容,这是我第一次尝试编写批处理文件来构建代码项目:

@ECHO OFF
set buildVer=%1
set path=XamarinTestApp\XamarinTestApp
set msBuildDir=%WINDIR%\Microsoft.NET\Framework\v4.0.30319

echo %buildVer%

IF "%buildVer%"=="Release" (
goto :releaseBuild)

IF "%buildVer%"=="Test" (
goto :testBuild)

IF "%buildVer%"=="Dev" (
goto :devBuild)

:releaseBuild
set buildType=Release
copy /-y %path%\app.Release.config %path%\app.Config
goto :builder

:testBuild
set buildType=Release
copy /-y %path%\app.Test.config %path%\app.Config
goto :builder

:devBuild
set buildType=Debug
copy /-y %path%\app.Debug.config %path%\app.Config
goto :builder

:builder
call %msBuildDir%\msbuild.exe
C:\Projects\%path%\XamarinTestApp.Droid\XamarinTestApp.Droid.csproj /property:Configuration=%buildType% /target:SignAndroidPackage /verbosity:diag

我正在寻找有关我收到的错误消息的任何建议,或者有关如何将可配置信息导入我的应用程序的建议。

谢谢。

【问题讨论】:

    标签: powershell batch-file msbuild


    【解决方案1】:

    不要使用path 作为用户变量。它是系统预定义的,用于定位可执行文件。

    将该名称更改为 mypath - 除了 path 之外的几乎任何名称。

    在提示符下,使用命令

    设置

    查看系统设置的变量名称的部分列表

    【讨论】:

    • 我已将所有路径变量更改为 mypath,但收到相同的错误消息。
    • 遗憾的是,我不是强大的专家。从使用谷歌找到的一些参考资料中,搜索powershell exit 9009,这些文章似乎指向“找不到文件”stackoverflow.com/questions/1351830/…stackoverflow.com/questions/22730003/…。哪个文件?不知道,但'& 'c:project... 似乎是一个指针。我建议 powershell 将整个字符串解释为 'Release' 作为文件名。
    • 我解决了这个问题,我从构建字符串中删除了 " 和 ',然后将便携式和 android 项目都设置为使用 msbuild 版本 14,一个在 12 上,一个在 4 上。这似乎解决了我的问题。感谢您的指点。
    猜你喜欢
    • 1970-01-01
    • 2016-02-12
    • 1970-01-01
    • 1970-01-01
    • 2019-11-18
    • 2021-09-19
    • 2021-06-02
    • 1970-01-01
    • 2013-10-26
    相关资源
    最近更新 更多