所以我有一个更新一些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) 因此,我已经将文件上传到我的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.Exists与Blob.DeleteIfExists总是返回false?
我使用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方法传递到我的主要捕获.这样做的正确方法是什么?
我Stored Procedure今天写了一篇文章写了一句:
SELECT pv1.Version FROM depl...
Run Code Online (Sandbox Code Playgroud)
并且Version下面显示的是蓝色的字:

所以我认为这是一个保留字,所以在这里做了一些调查:
但是Version在列表中找不到这个词.
是Version一个SQL保留字,如果不是为什么我的单词Version显示为蓝色?我正在使用SQL Management Studio 2012
我正在编写一个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 Test它MOQ来模拟我的接口实现,以便在运行时生成我的实现。我不想编写模拟类,因为我的实际示例更复杂,因此意味着它无法工作。
我该怎么做呢?我的DepdencyService耦合太紧密了吗Xamarin?
我正在尝试设置一个在每次签入时自动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复制并粘贴到我的远程机器.
但很明显,对于托管池,我无法登录到计算机.
我在设置中遗漏了什么吗?
我正在使用该属性构建移动应用程序,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属性的用途是什么以及我是否需要它?
我正在使用这个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软件包非常令人困惑 - 我认为社区将从它们的明确区别中受益......!
所以我有一个 PCL 项目,但现在想更新它以支持 .Net Standard
\n\n我已在 Microsoft 网站上阅读了执行此操作的步骤:
\n\n\n\n\n\n
\n- 右键单击项目文件并选择属性。
\n- 在“库”下,选择“目标 .NET 平台标准”。
\n
但最新版本的Visual Studio 2017中不存在这个按钮。
\n\n我也在这里读过:
\n\n\n\n\n\n
\n- 关闭VS中的解决方案
\n- 获取现有的 csproj 并在其他地方复制它。I\xe2\x80\x99 将在记事本中保持另一个副本打开。
\n- 复制/粘贴您创建的新项目的内容并替换\n 现有项目的内容。旧项目中的大部分内容已经不再需要了。您可能需要的是设置,例如与文件夹名称/约定不匹配的任何签名或程序集名称。如果您的 ResX 文件包含设计时生成的代码,则您需要添加以下内容。同样,对于 Xamarin Forms 页面,您将需要此。
\n
但我不明白上面突出显示的步骤,因为我有大量的 nuget 包和 ResX 文件,所以当我尝试时总是会导致构建错误
\n\n那么是否有任何直接的步骤可以将 PCL 项目更新为 .NetStandrard 项目呢?
\n我正在将应用程序的最新版本上传到 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如下所示:
到目前为止我已经尝试过:
以上均无效
难道是这个msbuild错误:https://developercommunity.visualstudio.com/content/problem/107928/get-merge-failure-for-shared-merged-pri-file-0x800.html?
c# ×5
sqlite ×2
xamarin ×2
.net ×1
ansi ×1
azure ×1
azure-devops ×1
indexing ×1
inno-setup ×1
moq ×1
pascal ×1
sql ×1
sql-server ×1
sqlite.net ×1
tfs ×1
tfsbuild ×1
unit-testing ×1
uwp ×1
webclient ×1