Dav*_*Dev 8 android xamarin.android xamarin
我想同时将Debug和Release版本部署到我的设备上.如果我在构建之前手动更改清单中的包名称,例如更改,我可以这样做
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="my.package">
Run Code Online (Sandbox Code Playgroud)
至
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="my.packageDEBUG">
Run Code Online (Sandbox Code Playgroud)
但是,我想在构建解决方案时自动执行此操作.如果我执行Debug构建,它将package="my.packageDEBUG"
在清单中构建.
这是可能的,如果是的话,怎么样?
Kil*_*man 14
您需要为项目创建自定义预构建事件.
右键单击您的项目,然后选择属性...
然后单击Build Events并将其添加到Pre-build事件文本框中:
PowerShell -File "$(SolutionDir)Update-PackageName.ps1" $(ProjectDir) $(ConfigurationName)
Run Code Online (Sandbox Code Playgroud)
复制以下PowerShell脚本并将其作为Update-PackageName.ps1保存在解决方案文件夹中
param ([string] $ProjectDir, [string] $ConfigurationName)
Write-Host "ProjectDir: $ProjectDir"
Write-Host "ConfigurationName: $ConfigurationName"
$ManifestPath = $ProjectDir + "Properties\AndroidManifest.xml"
Write-Host "ManifestPath: $ManifestPath"
[xml] $xdoc = Get-Content $ManifestPath
$package = $xdoc.manifest.package
If ($ConfigurationName -eq "Release" -and $package.EndsWith("DEBUG"))
{
$package = $package.Replace("DEBUG", "")
}
If ($ConfigurationName -eq "Debug" -and -not $package.EndsWith("DEBUG"))
{
$package = $package + "DEBUG"
}
If ($package -ne $xdoc.manifest.package)
{
$xdoc.manifest.package = $package
$xdoc.Save($ManifestPath)
Write-Host "AndroidManifest.xml package name updated to $package"
}
Run Code Online (Sandbox Code Playgroud)
祝好运!
归档时间: |
|
查看次数: |
4278 次 |
最近记录: |