基本上我们以手动安装程序(Windows powershell脚本)的形式发布我们的更改/修复.它将通过读取配置文件值在特定位置安装指定的.dll和SQL脚本文件(我们将在此文件中配置.dll和Sql脚本位置).相同的powershell脚本具有卸载代码以回滚特定的chage集.
是否有任何选项或机制来为上述要求创建Windows安装程序?
当我对应用程序包进行自签名时,Visual Studio 只允许我创建有效期为一年的安全证书。如何创建时间戳 url 或者在哪里可以找到免费的时间戳 url 以确保即使在使用的签名证书已过期后也可以安装 MSIX 包?

更新:
我尝试了很多网上可以找到的网址,其中大多数都给了我错误:
SignTool 错误:无法到达指定的时间戳服务器或返回无效响应。
最后我找到了一个(http://timestamp.comodoca.com),可以从这篇文章中使用https://support.comodo.com/index.php?/Knowledgebase/Article/View/68/0/time-stamping-server
我有多个目标框架的 wpf 项目
<TargetFrameworks>netcoreapp3.0;net48</TargetFrameworks>
在 vs2019 中,我创建了Windows Application Packaging Project(MSIX 包)并添加了对我的项目的引用。
但是当我尝试构建打包项目时,出现此错误:
error MSB4057: The target "GetTargetPathWithTargetPlatformMoniker" does not exist in the project.
error MSB4057: The target "GetTargetPath" does not exist in the project.
error MSB4057: The target "GetDeployableContentReferenceOutputs" does not exist in the project.
Run Code Online (Sandbox Code Playgroud)
当我使用单个目标时一切正常
<TargetFramework>netcoreapp3.0</TargetFramework>
我们有一个仅在内部使用的 .Net Core 应用程序。在从 WPF 切换到 .Net Core 的过程中,我们从 Click-Once 更改为 MSIX。在我们应用程序的窗口标题/标题中,我们还“输出”了当前版本(主要版本、次要版本……)。以前,我们采用了启动项目的版本(称为“视图”)。现在使用MSIX,这个项目已经得到了我们需要的版本号(启动项目引用“查看”)。我们现在怎样才能读到正确的版本?
使用Assembly.GetEntryAssembly或Assembly.GetCallingAssembly返回错误版本 - 启动项目的版本。该应用程序不在 Windows 应用商店中,它将作为包进行侧面加载。有什么想法可以在部署我们的包时获得我们“生产”的“正确”版本?
谢谢!
我正在使用 Visual Studio MSIX 打包项目在网络共享上为内部应用程序创建安装程序。
一个问题是它正在创建一个末尾带有“_Test”的目录。
为什么会这样以及我该如何摆脱它?我只想要“MyApp.MSIX_0.0.1.0”,或者理想情况下,“MyApp.0.0.1.0”。
Directory of I:\
08/14/2020 09:44 AM <DIR> .
08/14/2020 09:44 AM <DIR> ..
08/14/2020 09:44 AM 21,312 index.html
08/14/2020 09:23 AM 601 MyApp.MSIX.appinstaller
08/14/2020 09:37 AM <DIR> MyApp.MSIX_0.0.1.0_Test
2 File(s) 21,913 bytes
3 Dir(s) 62,444,621,824 bytes free
Run Code Online (Sandbox Code Playgroud)
我一直在搜索文档,但找不到有关它创建的目录或它生成的 index.html 文件的任何信息。我想自定义所有这些,添加发行说明等。
如果这有什么区别的话,这是一个 WPF 应用程序。
使用 Visual Studio 15.9.4,我们正在创建一个 UWP 侧面加载包。我们正在获得新的 msix/msixbundle 输出。
有人对如何让 UWP 侧面加载构建再次工作有任何意见吗?
我正在从 VS 2019 创建一个 .msix 包。正在打包的应用程序是 .NET Core 3.1 WFP 桌面应用程序。
包 (.msixbundle) 正确执行并且命名正确。
但是,放置包的文件夹始终在其所在文件夹的末尾附加“_Test”(后缀)。如果我将包发布到 Web 服务器或文件共享,则会累积以以下结尾的文件夹在“_测试”中。无论我是创建调试版本还是发布版本,都会发生这种情况。
我已在解决方案中搜索“测试”一词,但不存在。我创建了简单的通用应用程序,并且“_Test”后缀始终出现在包的文件夹名称中。
这是从哪里来的?
问题:
如何让 MSIXappinstaller在每次生成/发布期间输出正确的设置?
语境:
这是“为什么在启用侧面加载时 MSIX 不会在每次应用程序运行时自动检查更新?”的后续问题。
我在跑步:
MSIX Windows 目标设置如下:
MSIX 安装程序项目会创建无效appinstaller文件,这会阻止应用程序在每次运行时自动检查更新。我可以在每次构建/发布后手动更改文件,但我认为我不应该这样做,因为这似乎既弄巧成拙又错误。
一般来说,我几乎会忽略appinstaller每次创建,但文件会自动递增版本号。因此,我目前似乎陷入了某种形式的手动干预,要么更改 和schema version部分UpdateSettings,要么更新路径中的版本。这可能与运行 Visual Studio Community 版本有关吗?我需要专业人士才能让它发挥作用吗?
Visual Studio 创建的 Appinstaller,这是错误的:
<?xml version="1.0" encoding="utf-8"?>
<AppInstaller
Uri="https://<AppService>.azurewebsites.net/<AppName>.Setup.appinstaller"
Version="<AppVersion>" xmlns="http://schemas.microsoft.com/appx/appinstaller/2017/2">
<MainBundle
Name="<SomeGuid>"
Version="<AppVersion>"
Publisher="CN=<CertificateName>"
Uri="https://<AppService>.azurewebsites.net/<AppName>.Setup_<AppVersion>_Development_Test/<AppName>.Setup_<AppVersion>_x64_Development.msixbundle" />
<UpdateSettings>
<OnLaunch
HoursBetweenUpdateChecks="0" />
</UpdateSettings>
</AppInstaller>
Run Code Online (Sandbox Code Playgroud)
我需要 Visual Studio 创建的应用程序安装程序:
<?xml …Run Code Online (Sandbox Code Playgroud) 我目前正在开发一个 Python 项目,我希望将来将其上传到 Microsoft Store。
据我所知,为了将应用程序上传到Microsoft Store,必须将应用程序打包为MSIX格式。
现在的问题是 -是否可以将Python 项目打包为 MSIX 格式?
我认为将 .exe 文件打包到 MSIX 包中会容易得多。由于 .py 文件需要解释器才能运行,因此我设法将 Python 项目冻结为独立的 .exe 可运行文件 - 而且效果非常好。我发现了一个微软制作的有用的工具,它应该以 MSIX 格式打包 .exe 文件。该工具是MSIX Packaging Tool ,可从Microsoft Store获取。我确实设法创建了 .msix 文件,但无法运行,因为 Windows 要求我必须先对 .exe 进行签名。
我发现可以使用 Visual Studio 2019 中的内置工具将项目打包到 MSIX 包中。因此,我设法将整个 python 项目移动到 Visual Studio 中,并按照以下步骤打包我的项目项目。问题是,在早期阶段,当添加对我的 python 项目的引用时,会出现下一个错误:
我很想知道是否有其他可能的方法将 Python 项目打包到 MSIX 包中。
我有一个使用 MSIX 部署的 .NET 6 Windows 桌面应用程序。
我可以在自己的计算机上运行和调试它,但无法使用 Azure Pipelines YAML 进行构建。
我收到错误:
C:\Program Files\dotnet\sdk\6.0.101\Sdks\Microsoft.NET.Sdk\targets\Microsoft.PackageDependencyResolution.targets(267,5):错误NETSDK1047:资产文件'D:\a\1\s\ MyApp\obj\project.assets.json' 没有“net6.0-windows10.0.19041.0/win-x64”的目标。确保恢复已运行并且您已将“net6.0-windows10.0.19041.0”包含在项目的 TargetFrameworks 中。您可能还需要在项目的运行时标识符中包含“win-x64”。
应用程序项目文件:
<TargetFramework>net6.0-windows10.0.19041.0</TargetFramework>
<RuntimeIdentifier>win10-x64</RuntimeIdentifier>
<Platforms>x64</Platforms>
Run Code Online (Sandbox Code Playgroud)
安装程序项目文件:
<TargetPlatformVersion>10.0.19041.0</TargetPlatformVersion>
<TargetPlatformMinVersion>10.0.19041.0</TargetPlatformMinVersion>
<TargetFramework>net6.0-windows10.0.19041.0</TargetFramework>
<RuntimeIdentifier>win10-x64</RuntimeIdentifier>
Run Code Online (Sandbox Code Playgroud)
管道任务是使用 Visual Studio 2022 (v. 17) 进行 VSBuild,Nuget 工具是使用 NugetToolInstaller 任务安装的 6.0 版。
Azure Windows 代理使用 vmImage:“windows-2022”
错误说:
确保您已在项目的 TargetFrameworks 中包含“net6.0-windows10.0.19041.0”。您可能还需要在项目的运行时标识符中包含“win-x64”。
我已在应用程序和安装程序项目的 TargetFramework 中添加了“net6.0-windows10.0.19041.0”。
如果我win10-x64用win-x64它替换可以构建,但我需要使用win10-x64,因为其中一个包需要它(Microsoft.PowerShell.SDK 和 System.Management.Automation)。
新:添加/p:RestoreLockedMode=trueVS Build 任务后,我现在收到错误:
MyApp.Installer.wapproj:错误 NU1004:项目 MyApp 没有兼容的目标框架。包锁定文件与项目依赖项不一致,因此无法在锁定模式下运行恢复。禁用 RestoreLockedMode MSBuild 属性或传递显式 --force-evaluate 选项来运行还原以更新锁定文件。
新新:我升级到.NET 7,但遇到了同样的错误。
我该如何修复该错误?