6

我有一个 c++ 控制台应用程序,我想使用 clickonce 发布它。

当我运行 mageui.exe 工具并导入可执行文件和依赖文件以制作应用程序清单时,它不会让我将 app.exe 设置为入口点。我可以设置入口点,但是当我单击离线并保存时,它会清除对话框并抱怨我没有有效的入口点。

如果我仍然保存,则结果清单中的 entryPoint 为空。这使得 clickonce 失败,因为没有有效的入口点。

我试过手动创建一个入口点,如下所示:

  <entryPoint>
    <assemblyIdentity
        type='win32'
        name='My App'
        version='0.9.1.0'
        processorArchitecture='msil'
        language='en-US'/>
    <commandLine
        file="app.exe"
        parameters="run"/>
  </entryPoint>

那也行不通。

4

3 回答 3

3

在“程序集标识”和将处理器体系结构设置为 MSIL 之间,您似乎在告诉它入口点是某种 .NET 程序集。

不幸的是,通过粗略的搜索,您似乎无法通过 clickonce 部署非托管/本机应用程序。必须管理入口点。

您可以按照此处所述创建 shim 。

于 2009-06-23T21:15:23.280 回答
0

该应用程序必须进行管理。ClickOnce 使用 CLR 中内置的安全系统来限制应用程序可以执行的操作。本机代码没有这样的东西。

于 2009-06-24T00:54:57.753 回答
0

我不同意,看这篇文章。 如果它适用于 MFC 应用程序,那么它肯定也适用于任何其他非托管 C++ 应用程序。解决方案是嵌入一个用 /clr 编译的源文件。(记住 C++ 可以编译为 MSIL) MSDN 上的这篇文章似乎也同意。

于 2012-02-04T10:11:20.130 回答