小编use*_*er1的帖子

使用{AppVersion}作为Inno Setup中函数的参数

所以我有一个更新一些XML的函数,我希望将脚本部分中{AppVersion}设置的[Setup]函数作为常量传递给此函数

我试过了

MyFunction(ExpandConstants({AppVersion})
Run Code Online (Sandbox Code Playgroud)

但这给了我一个错误?如何正确地将此常量传递给我的函数

我的守则

[Files]
Source: ".\Source\myfile.txt"; DestDir: "{app}\System"; AfterInstall: MyFunction('{#SetupSetting("AppVersion")}')

[Setup]
AppId=MyApp
AppName=My Application
AppVersion=011
DefaultDirName=C:\MyApp

[Code]
procedure MyFunction(Text: String);
begin
  MsgBox(Text, mbInformation, MB_OK);
end;
Run Code Online (Sandbox Code Playgroud)

pascal inno-setup ansi

5
推荐指数
1
解决办法
3230
查看次数

Azure CloudBlockBlob.Exists()方法始终返回false

因此,我已经将文件上传到我的Azure存储帐户中,现在我正试图将其删除,因此我有了方法。

try
{
    var exists = Blob.Exists(); //Always False
    var t = Blob.DeleteIfExistsAsync(DeleteSnapshotsOption.IncludeSnapshots, null, null, new OperationContext());
    if (!t.Result) // t.Result is Always False
    {
         Blob.DeleteAsync(DeleteSnapshotsOption.IncludeSnapshots, null, null, new OperationContext());
    }
}
catch (Exception ex)
{
    //No 404 error thrown for DeleteAsync (Proves blob must exist)
}
Run Code Online (Sandbox Code Playgroud)

但是Blob.Exists()即使我可以通过门户看到存储帐户中的Blob,我的方法也始终返回false。Exist方法实际上有什么作用?msdn提供的唯一信息是:

检查斑点的存在。

在该DeleteIfExistsAsync方法返回false 之后,因为显然我不使用该blob DeleteAsync并将其从存储帐户中删除,更重要的是不会抛出404错误,如果没有要删除的blob或访问权限很高,通常会引发404错误不正确

为什么Blob.ExistsBlob.DeleteIfExists总是返回false?

c# azure

5
推荐指数
1
解决办法
2245
查看次数

使用WebClient.DownloadFileAsync时如何处理异常

我使用WebClient以下方式从Internet下载一些文件:

try  
{
   ManualResetEvent mr = new ManualResetEvent(false);
   mr.Reset();
   using (WebClient wc = new WebClient())
   {
          wc.DownloadFileCompleted += ((sender, args) =>
          {
               if (args.Error == null)
               {
                    File.Move(filePath, Path.ChangeExtension(filePath, ".jpg"));
                    mr.Set();
               }
               else
               {
                  //how to pass args.Error?
               }
           });
           wc.DownloadFileAsync(new Uri(string.Format("{0}/{1}", Settings1.Default.WebPhotosLocation, Path.GetFileName(f.FullName))), filePath);
           mr.WaitOne();
    }
}
catch (Exception ex)
{
   //Catch my error here and handle it (display message box)
}
Run Code Online (Sandbox Code Playgroud)

但我似乎无法将错误从我的匿名DownloadFileCompleted方法传递到我的主要捕获.这样做的正确方法是什么?

c# error-handling webclient

5
推荐指数
1
解决办法
9819
查看次数

"Version"是TRANSACT-SQL中的保留字吗?(显示蓝色但不在保留字列表中)

Stored Procedure今天写了一篇文章写了一句:

SELECT pv1.Version FROM depl...
Run Code Online (Sandbox Code Playgroud)

并且Version下面显示的是蓝色的字:

在此输入图像描述

所以我认为这是一个保留字,所以在这里做了一些调查:

保留关键字(TRANSACT-SQL)

但是Version在列表中找不到这个词.

Version一个SQL保留字,如果不是为什么我的单词Version显示为蓝色?我正在使用SQL Management Studio 2012

sql sql-server reserved-words

5
推荐指数
1
解决办法
550
查看次数

如何将最小起订量与 Xamarin.Forms DependencyService 结合使用

我正在编写一个Xamarin.Forms项目,我现在正在尝试Unit Test使用Xamarin.Forms DependencyService,如下所示:

PCL接口

public interface IGetDatabase
{
   string GetDataBase()
}
Run Code Online (Sandbox Code Playgroud)

设备特定实施

[assembly: Dependency(typeof(MyProject.Droid.GetDatabaseImplementation))]
class GetDatabaseImplementation: IGetDatabase
{
   public string GetDatabase()
   {
       return "MyDatabasePath";
   }
}
Run Code Online (Sandbox Code Playgroud)

它在PCL中的调用方式如下:

DependencyService.Get<IGetDatabase>().GetDatabase();
Run Code Online (Sandbox Code Playgroud)

现在我想用unit TestMOQ来模拟我的接口实现,以便在运行时生成我的实现。我不想编写模拟类,因为我的实际示例更复杂,因此意味着它无法工作。

我该怎么做呢?我的DepdencyService耦合太紧密了吗Xamarin

c# unit-testing moq xamarin

5
推荐指数
1
解决办法
2098
查看次数

使用托管tfs构建服务器构建Xamarin.Android时缺少Android NDK工具链目录'\ toolchains'

我正在尝试设置一个在每次签入时自动TFS Build agent构建我的Xamarin.Android项目.

我已按照此处列出的步骤操作:https://msdn.microsoft.com/library/vs/alm/build/apps/xamarin,用于设置托管构建代理.

TFS构建模板也有一个Xamarin.Android 模板,您可以预期它们已准备就绪.这也可以从上面的链接备份,该链接声明您可以Xamarin.Android在托管池上构建解决方案

但是我在构建项目时遇到以下错误:

缺少Android NDK工具链目录'\ toolchains'.请安装Android NDK

我在Xamarin上找到了一个链接https://developer.xamarin.com/guides/cross-platform/ci/configuring_tfs/tfs-and-xa/,其中说我需要登录构建机器并将Android NDK复制并粘贴到我的远程机器.

但很明显,对于托管池,我无法登录到计算机.

我在设置中遗漏了什么吗?

tfs tfsbuild xamarin.android xamarin azure-devops

5
推荐指数
2
解决办法
3127
查看次数

何时在 Sqlite.Net 类上使用 Index 属性?

我正在使用该属性构建移动应用程序,Sqlite.Net并且遇到了该Indexed属性。这在示例中显示:https ://github.com/praeclarum/sqlite-net#example-time

public class Stock
{
    [PrimaryKey, AutoIncrement]
    public int Id { get; set; }
    [MaxLength(8)]
    public string Symbol { get; set; }
}

public class Valuation
{
    [PrimaryKey, AutoIncrement]
    public int Id { get; set; }
    [Indexed]
    public int StockId { get; set; }
    public DateTime Time { get; set; }
    public decimal Price { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

正如您所看到的,该StockId列被标记为,Indexed但是在查询表时,肯定会由Sqlite引擎来确定索引并优化查询。

所以我的问题是该Indexed属性的用途是什么以及我是否需要它?

c# sqlite indexing sqlite.net

5
推荐指数
1
解决办法
5136
查看次数

Xamarin.Forms PCL组装问题

我正在使用这个sqlite-pcl软件包开发一个带有Xamarin.Forms的多平台PCL应用程序,如本示例所示.

警告PCL库 的nuget站点左侧包含一个错误的链接,当你去Project Site- 它指向SQLite-net站点...所以我甚至不知道正确的Sqlite-PCL链接是什么.. .

它工作得很好,直到今天早上,当我尝试安装其他一些软件包时(注意我最初没有触摸sqlite软件包).突然之间,我的应用程序在第一次数据库访问时崩溃了

System.IO.FileLoadException:'无法加载文件或程序集'SQLite-net,Version = 1.4.118.0,Culture = neutral,PublicKeyToken = null'.定位的程序集的清单定义与程序集引用不匹配.(HRESULT异常:0x80131040)

嗯,好吧,我开始搜索论坛,试图找到哪个部分可能是问题的根源 - 只是没有帮助 - 卸载并重新安装包,重新启动,手动删除我找到并重新编译的所有引用,重新部署...我实际上被卡住了,我Fuslogvw没有成功地尝试过......我对此非常绝望 - 有关如何找到问题根源的任何建议吗?

技术细节: - VS社区2017 - 构建配置:调试 - 任何CPU - UWP的语言环境加工 - 是否还有其他相关数据?

好的,经过几个小时的海运后,感谢@ yuri-s,我重新安装了SQLite.Net.Async-PCL包裹.我不得不更新一些using条款,但最终,我似乎到了那里.

但是,我仍然坚持最后一点:我需要在这个特定的库中使用特定于平台的程序集创建数据库连接 - 但是我找不到这里建议的代码(上一篇文章).但我无法弄清楚应该进入每个操作系统的依赖接口的代码(SQLite.Net.Platform在该软件包中似乎不存在).

总而言之,SQLite-PCL软件包非常令人困惑 - 我认为社区将从它们的明确区别中受益......!

sqlite xamarin.forms visual-studio-2017

5
推荐指数
1
解决办法
1584
查看次数

如何将 PCL 转换为 .Net 标准库

所以我有一个 PCL 项目,但现在想更新它以支持 .Net Standard

\n\n

我已在 Microsoft 网站上阅读了执行此操作的步骤:

\n\n
\n
    \n
  • 右键单击项目文件并选择属性。
  • \n
  • 在“库”下,选择“目标 .NET 平台标准”。
  • \n
\n
\n\n

但最新版本的Visual Studio 2017中不存在这个按钮。

\n\n

我也在这里读过:

\n\n
\n
    \n
  • 关闭VS中的解决方案
  • \n
  • 获取现有的 csproj 并在其他地方复制它。I\xe2\x80\x99 将在记事本中保持另一个副本打开。
  • \n
  • 复制/粘贴您创建的新项目的内容并替换\n 现有项目的内容。旧项目中的大部分内容已经不再需要了。您可能需要的是设置,例如与文件夹名称/约定不匹配的任何签名或程序集名称。如果您的 ResX 文件包含设计时生成的代码,则您需要添加以下内容。同样,对于 Xamarin Forms 页面,您将需要此。
  • \n
\n
\n\n

但我不明白上面突出显示的步骤,因为我有大量的 nuget 包和 ResX 文件,所以当我尝试时总是会导致构建错误

\n\n

那么是否有任何直接的步骤可以将 PCL 项目更新为 .NetStandrard 项目呢?

\n

.net c# portable-class-library .net-standard

5
推荐指数
1
解决办法
2172
查看次数

将 UWP 应用上传到 Windows 应用商店时出错:无法合并 PRI 文件 \Resources_split.scale-100.pri

我正在将应用程序的最新版本上传到 Windows 商店,但我的应用程序抛出错误:

包接受验证错误:我们在解析包 MyApp.UWP_2.33.0.0_x86_x64_ARM_AppStore.appxbundle 时遇到致命错误:无法合并 PRI 文件 D:\data\Temp\69b5c2ab-3419-4197-839c-2ef13d218413\Resources_split.scale- 100.pri: 80070490。重试或上传新包。

我不明白从哪里开始修复这个错误。

还有其他人看到过这个错误或者有任何倾向它可能是什么吗?

在附件上运行时也会引发类似的错误,Windows App Certification Kit如下所示:

在此输入图像描述

到目前为止我已经尝试过:

  • 运行 WsReset
  • 运行 sfc /scannow
  • 增加应用程序版本号

以上均无效

难道是这个msbuild错误:https://developercommunity.visualstudio.com/content/problem/107928/get-merge-failure-for-shared-merged-pri-file-0x800.html

windows-store uwp windows-10-universal

5
推荐指数
1
解决办法
1609
查看次数