1

我一直在尝试使用 Remotesoft Linker 和 Mini Deployment 工具从我的托管代码创建单个本机可执行文件(不需要安装框架)。它具有的可配置功能之一是 csc.exe 是否可用于最终可执行文件。它的文档说它通常只在使用 XML 序列化时才需要(我是)。我修改了构建过程以使用 SGen 创建序列化程序集,并将结果添加到使用我的 xml 类的解决方案中每个项目的引用中。序列化类使其成为链接的 .net 可执行文件(所有 .net dll 组合成一个托管 exe);所以我假设我已经正确配置了。

但是,我的应用程序在运行时仍会尝试执行 csc。我是否对序列化程序集做错了什么,导致它在运行时重新创建;或者我的应用程序是否在做其他需要 csc 的事情,我该如何确定?

http://www.remotesoft.com/linker/

在构建过程中生成 Xml 序列化程序集

编辑:使用修改后的 app.config 进行一些测试,以保持序列化文件在生成时可见(通过撤消构建时间生成进行测试);看来我之前确实已经正确创建了它们。除非框架的不同部分在运行时调用 csc 并且使用不同的标志不隐藏其结果,否则我认为 RemoteSoft 工具可能是罪魁祸首。我不能确定,因为即使它注入的 app.config 文件告诉它,输出可执行文件也不会留下它创建的任何临时文件。

我使用的 app.info 是这个。在其他地方,我看到了使用值 4 的示例,但无法找到它们的行为之间的任何区别。

<?xml 版本="1.0" 编码="utf-8" ?>
<配置>
   <系统诊断>
      <开关>
         <add name="XmlSerialization.Compilation" value="1" />
      </开关>
   </system.diagnostics>
</配置>
4

1 回答 1

0

尽管您已经生成了 XML 序列化程序集,但 Remotesoft Linker 的工作方式可能意味着内置序列化框架可能无法识别它们。我并不是说是这种情况,只是说这是第一个停靠港。

我不知道序列化框架如何决定是否使用 csc 的细节——但这可能是首先要调查的事情。

于 2009-04-01T13:25:06.107 回答