WPF Clickonce 使用 Microsoft.Net.Sdk 发布

2023-11-22

我可以使用 Sdk="Microsoft.Net.Sdk" 成功构建具有新 csproj 格式的 WPF 应用程序。

然而,发布该应用程序有点困难。该选项在 IDE 中绝对不可用。但我觉得有点令人费解的是,当您直接调用 msbuild 时,Publish 目标似乎不可用。

这些是我设置的一些顶级属性:

    <Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
    <TargetFramework>net461</TargetFramework>
    <LanguageTargets>$(MSBuildExtensionsPath)\$(VisualStudioVersion)\Bin\Microsoft.CSharp.targets</LanguageTargets>
    <OutputType>WinExe</OutputType>
    <PlatformTarget>x86</PlatformTarget>
    <Prefer32Bit>false</Prefer32Bit>
    <!--<AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects>-->
</PropertyGroup></Project>

我还设置了与 ClickOnce 相关的典型内容,例如 PublishUrl 等。我可以做什么来获取/公开发布目标,就像上面的 LanguageTarget 为控制台、Web 和普通之外的其他遗留 C# 构建任务启用“CoreBuild”一样图书馆。

进一步的想法:

所以,进一步检查发现,实际上存在一个 Publish 目标。但它对名为 Publish 的子文件夹进行简单的文件夹/xcopy 部署,而不是创建 app.publish 文件夹并执行 ClickOnce 操作。

如何解决这个问题?


您可以使用 Mage.exe(命令行)或 MageUI.exe (gui) 工具手动发布 ClickOnce。这不是很方便,但如果一切都正确的话,它似乎确实有效。我将概述什么对我有用MageUI.exe.

为您使用的 .NET 版本选择正确的实用程序版本:

C:\Program Files (x86)\Microsoft SDKs\Windows\

首先将您的应用程序文件发布到文件夹。通常这会是这样的:

\\服务器\共享\MyApplication\应用程序文件\MyApplication_1_0_0_25\

注意:我对以下空间有疑问Application Files,它将被转换为%20,但我认为 UNC 路径不支持该值。我必须删除空格并将文件夹重命名为ApplicationFiles。 (但这可能会破坏以前发布的版本。)

然后使用MageUI.exe创建新的应用程序清单:

  • 在“名称”页面上,为其指定名称、版本,然后选择处理器架构 (x86)。
  • 在“文件”页面上,输入将文件发布到的目录,然后单击“填充”。它应该将所有程序文件加载到下面的 DataGridView 中。
  • 在“所需权限”页面上,我无法使其与 FullTrust 以外的任何内容一起工作。如果没有 FullTrust,当应用程序运行时,什么也不会发生。
  • 将清单文件另存为MyApplication.exe.manifest到应用程序文件夹。 (保存清单后,您将能够对其进行签名。)

现在创建一个新的部署清单:

  • 在“名称”页面上,输入相同的名称和版本,然后选择正确的处理器架构。
  • 在描述页面上,输入发布者和产品。
  • 在“部署选项”页面上,我选择“仅在线”。我没有包含开始位置。
  • 在“应用程序参考”页面上,选择“选择清单”并浏览到您之前创建的应用程序清单文件。
  • 将部署清单另存为\\server\share\MyApplication\MyApplication.application; (保存时可以签名。)
  • 注意:这里的一个问题似乎是,当您选择应用程序清单文件时,它会推断出错误的相对路径。第一次保存部署清单后,再次选择应用程序清单文件,它现在将推断出正确的相对路径。然后再次点击保存就可以了。

有很多事情可能会出错,并且程序可能会在很多方面有所不同,但这些步骤对我有用。

(在这些步骤中我必须做的另一件事是通过删除以下内容来清除我的 ClickOnce 应用程序缓存c:\users\username\AppData\Local\Apps\2.0\。但这可能只是因为我犯了所有错误。只有当你遇到困难时我才会这样做。)

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

WPF Clickonce 使用 Microsoft.Net.Sdk 发布 的相关文章

  • 平滑手绘曲线

    我有一个允许用户绘制曲线的程序 但这些曲线看起来不太好 它们看起来摇摇欲坠 而且是手绘的 所以我想要一种能够自动平滑它们的算法 我知道平滑过程中存在固有的模糊性 因此它不会每次都完美 但这种算法似乎确实存在于多个绘图包中 并且它们工作得很好
  • 最新 .Net MongoDb.Driver 的连接问题

    我创建了一个 MongoLab 沙箱数据库 我与 MongoChef 连接 效果很好 我通过 Nuget 安装了 MongoDB Driver 2 2 2 我编写了一些简单的 C 演示代码 但就是无法使其工作 连接字符串是直接从 Mongo
  • 如何从 Qt 应用程序通过 ODBC 连接到 MySQL 数据库?

    我有一个新安装的 MySQL 服务器 它监听 localhost 3306 从 Qt 应用程序连接到它的正确方法是什么 原来我需要将MySQL添加到ODBC数据源 我在遵循这个视频教程后做到了这一点 https youtu be K3GZi
  • C# 无法捕获 SerializationException

    我的程序在加载序列化文件的部分遇到问题 如果文件无法反序列化 我希望很好地失败 但由于某种原因 我的程序将中断而不是进入 catch 子句 这是我的代码 using FileStream fs new FileStream openFile
  • 嵌入资源文件的路径

    我的资源文件中有一个图标 我想引用它 这是需要图标文件路径的代码 IWshRuntimeLibrary IWshShortcut MyShortcut MyShortcut IWshRuntimeLibrary IWshShortcut W
  • 当 Generic.List.Add 是函数中的最后一个语句并且开启尾调用优化时,性能会受到影响

    我遇到了一个奇怪的性能损失 我将其归结为以下代码
  • opencv中如何去除二值图像噪声?

    将图像转换为二值图像 黑白 后如果有任何噪音怎么办 我消除了那些不需要的噪音 您可以看到下图的黑色区域内有一些白噪声 我该如何去除噪声 使用opencv http img857 imageshack us img857 999 blackn
  • 如何减少 MinGW g++ 编译器生成的可执行文件的大小?

    我有一个简单的 Hello world C 程序 在 Win XP 下由 MinGW g 编译器编译为 500kB 可执行文件 有人说这是由于iostream的库和静态链接libstdc dll Using s链接器选项有点帮助 减少了 5
  • 如何将 Q 格式整数转换为浮点数(反之亦然)?

    我四处搜寻 找不到一个很好的问题来回答这个问题 给定一个整数 使用Q Format https en wikipedia org wiki Q number format 如何将该数字转换为普通浮点类型 反之亦然 如何将浮点类型转换为Q F
  • .NET 5 EF Core SaveChangesAsync 因错误而挂起

    尽管这个问题有很多结果 但没有一个真正给我明确的答案 每次我尝试通过 AddAsync 和 SaveChangesAsync 方法插入错误数据 例如重复的主键 时 我都会看到以下日志 执行 DbCommand 失败 15 毫秒 我还在 SQ
  • C# 枚举到字符串自动转换?

    是否可以让编译器自动将我的 Enum 值转换为字符串 这样我就可以避免每次都显式调用 ToString 方法 这是我想做的一个例子 enum Rank A B C Rank myRank Rank A string myString Ran
  • .NET WebClient:DownloadString 在哪里?

    我可能在这里遗漏了一些东西 但是当我使用 WebClient 并查找 DownloadString 方法 如书籍示例中所示 时 我只看到 DownloadStringAsync 我缺少什么导入 您使用的是 Silverlight 吗 Sil
  • valgrind 在 Raspberry Pi 上返回未处理的指令

    我最近一直在尝试在运行 Debian GNU Linux7 0 喘息 的树莓派 型号 b 上使用 valgrind 来调试分段错误 每次我在编译的 C 程序上运行 valgrind 时 都会得到类似以下内容的信息 disInstr arm
  • Gremlin.net 文本包含等效项

    我正在使用 Gremlin net 库连接到 janus 图形服务器 我使用 cassandra 和弹性搜索进行数据存储和索引 在我使用的 gremlin 语言和 gremlin 控制台中文本包含在属性的文本中进行搜索 我正在使用混合索引
  • 如何从 Access 数据库中读取“是/否”值作为布尔值?

    帮我找回YES NO来自 MS Access 的布尔格式数据类型 我尝试解析它 但它总是返回 false 更新 实际上不是问题抱歉 它确实接受 YES NO 作为布尔值 OleDbconnection dbConnect new OleDb
  • C 变量声明的效率 [重复]

    这个问题在这里已经有答案了 例如 在 C 中声明一个变量需要多长时间int x or unsigned long long var 我想知道它是否会让我的代码在类似的事情中更快 for conditions int var 0 code 这
  • Xcode 7 调试器不会中断内联标头函数

    过去五年我一直在各种 C 项目中使用 Xcode 没有出现这个问题 今天 我打开了一个较旧的项目 大约 2 年前 并尝试通过在该函数中放置一个活动断点来调试头文件中的内联函数 由于某种原因 调试器不会中断此代码 但是 如果我在调用该函数的
  • 为什么在构造函数中设置字段是(或不是)线程安全的?

    假设您有一个像这样的简单类 class MyClass private readonly int a private int b public MyClass int a int b this a a this b b public int
  • 从脚本启用/禁用 GameObject 组件 [Unity3D]

    我需要获取一个脚本中设置的布尔值 放入名为 bouclier 的变量 以启用或禁用游戏对象 该变量位于游戏对象 Player 中 此处右下角 我需要启用或禁用这个游戏对象 Bouclier01 为此 我将脚本附加到游戏对象 Bouclier
  • 如何在 C 中创建最低有效位设置为 1 的掩码

    这个功能如何运作 最低有效 n 位设置为 1 的掩码 Example n 6 gt 0x2F n 17 gt 0x1FFFF 我根本不明白这些 尤其是 n 6 gt 0x2F 另外 什么是面膜 通常的方法是采取1 并将其左移n位 这会给你类

随机推荐

  • 如何在 NodeJS 中创建带有路径的文件对象?

    我想知道是否可以创建一个FileNodeJS 中的对象 名称 大小 数据 以及现有文件的路径 我知道客户端可能有这种情况 但我没有看到 NodeJS 的任何内容 换句话说 我想要与 NodeJS 中相同的函数 function srcToF
  • CompositeCollection 内的绑定

    我想创建一个包含多个 静态 TabItem 在 XAML 中显式键入 和多个动态添加的 TabItem 的 TabControl 为了实现这一点 我尝试使用 CompositeCollection 作为 TabControl ItemSou
  • fft(DFT) x 轴的单位[重复]

    这个问题在这里已经有答案了 可能的重复 如何从 FFT 结果获取频率 我对 Matlab 中 fft DFT 命令的 x 轴感到困惑 当我们对在 n 点采样的信号执行 fft 命令时 我们会得到一个 x 轴为 0 到 n 1 的图 它的意思
  • 可以根据Android操作系统版本仅加载特定行的代码吗?

    是否有一行简单的代码允许仅在操作系统版本满足要求时加载代码 假设我的目标操作系统是 2 2 但 android 1 5 的最小 sdk 是 3 所以即使我的项目中有一些与 1 5 不兼容的代码 它仍然会编译 因为目标操作系统是 2 2 无论
  • Google 数据存储 - 查询键值

    我有一个 EntityKind SuggestedInterest 当我用键 GrpId 和属性 suggestedint 填充它时 现在 我需要请求的 GrpId 的 suggestedint 值 因此 我将查询写为 String fin
  • 闪亮 UI 中的帮助文本工具提示

    我想将复选框标签的帮助文本作为工具提示放置 在下面的示例中我使用shinyBS包 但我只让它适用于复选框输入组的标题 在 Lernerfolg 或 Enthusiasmus 标签之后它如何运作有什么想法吗 library shiny lib
  • AVAudioPlayer 的 IOS 最大音量级别?

    我使用 AVAudioPlayer 播放 caf 文件 我的问题是 对于我的目的来说 声音不够响亮 由于 iPhone 的铃声更大 我想知道如何归档此卷 我已经尝试操作 caf 文件 但没有真正成功 有任何想法吗 我到目前为止使用的代码 A
  • 运行 VBA 脚本导致 Excel 停止响应

    我有一个 VBA 脚本 可以将工作表添加到大约 500 个 Excel 文件中 我运行 VBA 脚本和添加简单的工作表没有任何问题 但是当我尝试添加其中包含 VBA 脚本以及图形和按钮的工作表时 它会工作一段时间然后冻结 这是代码 我知道它
  • 比较两个日期[重复]

    这个问题在这里已经有答案了 如何比较两个不同的日期以找出较晚的日期 例如 在date1我会在下载一些数据后存储一个日期 然后在date2 我将存储当前日期 然后我需要检查哪一个更大 稍后 类似if date1 gt date2 就像是 NS
  • 解决 AWS CDK CloudFormation 堆栈之间的循环依赖关系

    上下文 我有一个带有两个堆栈的 CDK 应用程序 使用以下设置 Stack A StateMachine A Lambda A S3Bucket A IAMRole A Stack B StateMachine B SageMakerTra
  • 更改临时目录

    我在 Windows 上使用 R 需要更改存储 tmp 文件的临时目录 我在此处 R help 等中检查了一些答案 但没有人在工作 我尝试过的一些链接 here here and here 在尝试了这些答案之后 我不得不说我并没有完全理解它
  • 使用 R 读取 GTFS 实时文件?

    我想使用 R 分析 GTFS 实时文件 与静态 GTFS 相比 这些文件是编译的 读取它们更棘手 谷歌搜索 我只找到这个包来处理 GTFShttps github com ropenscilabs gtfsr 但同样 这仅适用于静态 GTF
  • 操作无法完成。 (可可错误:3840。)

    我正在尝试解析 ios 6 应用程序的 JSON 但似乎无法让它工作 我已经搜索了大量的论坛 但还没有找到一个有效的 我理解足以实施或适用的解决方案 如果我错过了 我深表歉意 首先 我有一个测试 WebService 据我所知 它返回有效的
  • getFullYear 返回一年前的第一天

    我试图从日期中取出年份 但由于某种原因 在今年的第一天它返回了上一年 new Date 2012 01 01 getFullYear 将返回 2011 并且 new Date 2012 01 02 getFullYear 将返回 2012
  • 如何在颤动中按下后立即更改图标颜色?

    我想在按下图标后更改其颜色 但似乎以下代码不起作用 void actionClickRow String key Navigator of context push new MaterialPageRoute builder context
  • QNetworkAccessManager 文件上传错误

    我正在尝试在 CentOS 6 4 上的 Qt 5 0 中使用 QNetworkAccessManager 将文件上传到服务器 我尝试过遵循网上的一些示例 但没有一个起作用 QFTP 工作得很好 但速度很慢 现已弃用 我的上传代码是 voi
  • 如何创建“将此页添加为书签”按钮?

    我设置了一个网站 想添加一个简单的按钮 以允许访问者将我的页面添加到他们的书签 收藏夹中 有没有办法使用 javascript 来做到这一点 还有跨浏览器的解决方案吗 Stack Overflow 中以前的所有答案都不再起作用 尝试了所有最
  • 如何在 iOS 中使用 DatePicker 只接受月份和年份

    我正在使用 swift 构建一个应用程序 该应用程序中有一个字段用于接受用于付款目的的借记卡到期日期 如何在 Swift 中使用 DatePicker 只接受月份和年份 如果无法使用日期选择器 请建议其他方法 先感谢您 Choice 1 O
  • FTP协议和删除目录

    Filezilla 花了很长时间才从我的网站中删除嵌套目录结构 为什么它必须切换到每个子目录并删除文件 而不是一次性删除整个最顶层的目录 删除文件是 FTP RFC 中唯一支持的命令吗 递归目录删除是否必须由客户端实现 The FTPRFC
  • WPF Clickonce 使用 Microsoft.Net.Sdk 发布

    我可以使用 Sdk Microsoft Net Sdk 成功构建具有新 csproj 格式的 WPF 应用程序 然而 发布该应用程序有点困难 该选项在 IDE 中绝对不可用 但我觉得有点令人费解的是 当您直接调用 msbuild 时 Pub