Tag: windows运行时

使用Windows Installer部署COM加载项的困难

我在Visual Studio 2012中创build了一个COM加载项,当我在我的机器上编译和运行它时,它完美地工作。 当我尝试使用我创build的Windows安装程序来安装加载项时出现问题。 我正在尝试将这个加载项安装到多台机器上,我想知道问题出在安装程序上。 当我尝试使用Excel调用COM加载项的Sub时,它会在第二行引发“下标超出范围”。 Sub连接到SQL服务器,根据单元数据执行查询,并返回结果。 我在Excel中查看加载项,它已安装,并且不处于不活动状态/禁用状态。 如果我在我的机器上编译项目,这个相同的代码完美的工作,而不是当我用安装程序安装加载项。 Dim com as COMAddIn Set com = Application.COMAddIns("SQL") <—- com.Object.ConStr 我按照这个指导安装程序: https://msdn.microsoft.com/en-us/library/Cc442767.aspx 我做了以下的安装程序运行(只是上面的文章的摘要): 将主输出,.vsto和dll.manifest文件添加到应用程序文件 添加了.NET Framework 4.5(完整版)和Visual Studio 2010 Tools for Office Runtime作为先决条件 设置INSTALLDIR 指定应用程序应该部署到当前用户 告诉安装程序创build以下registrypath HKEY_CURRENT_USER\Software\Microsoft\Office\Excel\Addins\JACOB.SQL 创build了以下registry项 Description SQL FriendlyName SQL LoadBehavior 3 Manifest file:///[INSTALLDIR]SQL.vsto|vstolocal 将生成设置为SingleImage 将InstallShield先决条件设置为“从Web下载” 将活动解决schemeconfiguration设置为SingleImage 将安装程序的configuration设置为SingleImage build立安装程序 我确保从Excel中卸载我的项目的编译版本,然后转到以下文件path并运行setup.exe。 %Visual Studio 2012%\Projects\SQL\Setup1\SQL_Setup\Express\SingleImage\ DiskImages\DISK1 […]

将特殊字符保存为可在PC(Excel)和Mac(数字)上打开的CSV

我有一个脚本(我在Mac上运行)将C程度(以摄氏度为单位)写入CSV文件。 我想要在Excel和数字中查看这个文件。 问题是,它打开罚款数字,但在Excel中显示奇怪的字符(Windows,我没有在Mac上testing的Excel)。 我试了℃(unicode字符)和°C(一个字符后面跟一个C)。 在Excel中,我得到这个: 我很确定csv文件是UTF-8编码,所以我不知道是什么原因造成的问题。 这里是我注意到的其他东西,如果我保存为.txt而不是.csv,然后在Excel中打开它,那么会出现一个导入向导。 如果我只是保留默认值并select“完成”,那么符号显示正确。 但这并不理想,因为我的用户将无法双击文件来打开它。 在两个程序中使用同一文件显示特殊字符的最佳方法是什么?

WinRT中的未处理exception问题

当我在代码中遇到一个exception时,它会一直抛出并一直回到app.gics文件。 如果在try / catch中引发exception的方法并不重要,它仍会回到App实例。 这是我正在尝试使用的方法: public static async Task Clear() { userSessionToken = string.Empty; var appdata = ApplicationData.Current; StorageFile file = await appdata.LocalFolder.GetFileAsync("parseSession"); try { await file.DeleteAsync(StorageDeleteOption.PermanentDelete); } catch (FileNotFoundException) { return; } } 每次我点击DeleteAsync方法,并且该文件不存在,我希望抛出和吞下exception。 相反,我的抓住从未受到打击。 它一直泡到app.gi文件。 public void InitializeComponent() { if (_contentLoaded) return; _contentLoaded = true; #if DEBUG && !DISABLE_XAML_GENERATED_BINDING_DEBUG_OUTPUT DebugSettings.BindingFailed += (sender, args) […]