我安装了ASP.NET Web API帮助页面包,并希望使用它来为我的API控制器操作生成文档,使用它们上面的Xml注释.
我在Yao的MSDN博客上发现了一篇文章,他在文章中讨论了如何根据XML注释生成文档.
但是,在Register方法中HelpPageConfig,该SetDocumentationProvider方法需要一个XmlDocumentationProvider使用物理路径构建的实例到Xml文档文件.
还有另一种方法吗?我不清楚为什么我需要指向一个Xml文档文件.
谢谢
背景
我们正在使用System Center 2012在运行Windows 8 Enterprise x64的领域中将Windows 8 Metro风格的应用程序部署到三星平板电脑.平板连接到域并具有持久的DirectAccess连接,允许System Center将应用程序和更新推送到设备.
我们必须将我们的应用程序部署到现场可能有数百台设备,这就是我们进入System Center路线的原因.使用组策略在每个设备上安装代码签名证书.要部署应用程序,只需提供包输出并指定要安装它的设备集合.该应用程序只需几分钟即可显示在设备上.
我们遇到的问题是,当System Center部署我们的应用程序时,SQLite依赖关系丢失,我们的数据访问都不起作用.
关于我们的项目
我们的应用程序是一个使用SQLite作为后端的WinJS应用程序.但是,我们所有的数据访问代码都在WinJS项目引用的C#WinMD项目中.我们使用sqlite-net库与SQLite交谈 - 我们在C#项目中包含了它的源代码.
在Visual Studio中,我们安装了SQL Run for Windows Runtime扩展,如Tim Heuer的文章中所述.Metro应用程序引用了这个.
使用其他部署方法进行测试
当您在本地调试或运行它时,应用程序的SQLite数据访问工作正常 - 在Debug/Release和x86/x64中.
应用程序打包过程提供了一个PowerShell脚本,您可以根据需要使用该脚本来安装应用程序和开发人员许可证.使用PowerShell脚本安装我们的应用程序时,SQLite数据访问也可以正常工作.通过打包和安装应用程序的Debug/Release和x86/x64版本来验证这一点.
故障排除
当应用程序首次尝试使用SQLite时,我们会看到一个关于它无法找到sqlite3.dll的异常.
我们已经尝试/验证了以下内容:
更新 问题是System Center在部署SQLite库所需的Visual C++运行时库依赖项时遇到问题.所以不幸的是,这不再是一个编程问题了.我们正在获得一些帮助,我将发布修复程序.
我正在编写一个PowerShell脚本,该脚本使用SharePoint 2010 New-SPWeb cmdlet创建由Xml文件定义的站点:
<?xml version="1.0" encoding="utf-8" ?>
<siteStructure>
<site>
<url>Corporate</url>
<name>Corporate</name>
<language>1033</language>
<addToQuickLaunch>0</addToQuickLaunch>
<addToTopNav>0</addToTopNav>
<useParentTopNav>1</useParentTopNav>
</site>
</siteStructure>
Run Code Online (Sandbox Code Playgroud)
New-SPWeb cmdlet有三个开关参数:
当Xml中的匹配值为0或$ true时,我无法确定如何仅设置switch参数.
在调用New-SPWeb来设置三个开关参数时,我几乎需要某种内联if语法.
$siteStructureData = [xml](Get-Content .\Data-SiteStructure.xml)
# find the template to use
$webTemplate = Get-SPWebTemplate | Where {$_.Title -like $templateName }
if ($webTemplate)
{
# iterate through and create sites
foreach ($siteToCreate in $siteStructureData.siteStructure.site)
{
"Creating site $webtitle at $URL/$webUrl"
# http://technet.microsoft.com/en-us/library/ff607579.aspx
New-SPWeb `
-Url "$URL/$siteToCreate.url" `
-Name $siteToCreate.name `
-Template $webTemplate `
-Language $siteToCreate.language
# …Run Code Online (Sandbox Code Playgroud) 开箱即用,System.Web.Security.Membership实现了几种搜索方法:
我正在使用CodePlex的WSAT项目来管理我的会员数据库.该工具在ProfileCommon类中实现额外的配置文件属性.
假设我在用户的个人资料中有一个名为Firm的属性.
我需要实现一个自定义搜索方法来搜索Firm属性,我想在代码中完成所有这些操作.不想编写存储过程(因为所有配置文件属性都存储在WSAT工具的1个数据库列中).
这样的事情显然不是正确的方法,但这里只是演示访问用户的配置文件属性:
private MembershipUserCollection SearchByFirm(string firmName, MembershipUserCollection allRegisteredUsers)
{
MembershipUserCollection searchResults = new MembershipUserCollection();
foreach (MembershipUser user in allRegisteredUsers)
{
ProfileCommon profile = Profile.GetProfile(user.UserName);
if (profile.Firm.ToLowerInvariant().Contains(firmName.ToLowerInvariant()))
{
searchResults.Add(user);
}
}
return searchResults;
}
Run Code Online (Sandbox Code Playgroud)
我可以把它变成一些LINQ善良吗?
我正在开发一个使用 SQLite 作为本地数据库的 Windows 8 Metro 应用程序。
数据库中的一个表包含日期时间列。在运行按日期时间列对结果集进行排序的查询时,我看到了意外的结果 - 结果集的排序方式与您预期的不同。
日期时间列填充了由 C# 中的 Metro 应用程序生成的数据;例如作为DateTimeOffset.Now. WinRT 不支持DateTime,因此我们使用DateTimeOffset.
您可以在一个简单的表中复制它:
CREATE TABLE "Foo" ("DateOfFoo" DATETIME)
Run Code Online (Sandbox Code Playgroud)
以下是一些基于我们应用程序数据的示例数据(请注意,我位于 PDT 时区,即 UTC -7):
INSERT INTO "main"."Foo" ("DateOfFoo") VALUES (?1)
Parameters:
param 1 (text): 9/18/2012 8:08:56 AM -07:00
INSERT INTO "main"."Foo" ("DateOfFoo") VALUES (?1)
Parameters:
param 1 (text): 9/18/2012 8:13:42 AM -07:00
INSERT INTO "main"."Foo" ("DateOfFoo") VALUES (?1)
Parameters:
param 1 (text): 9/18/2012 12:46:36 PM -07:00
Run Code Online (Sandbox Code Playgroud)
一个简单的查询,例如:
Select * From …Run Code Online (Sandbox Code Playgroud)