如何配置Team Build 2010 构建过程模板以通过Gallio运行MbUnit测试?
我有一个SQL 2008表,其中一个名为RecDate的字段为DateTimeOffset.
对于给定记录,值为'2010-04-01 17:19:23.62 -05:00'
在C#中,我创建一个DataTable并用"SELECT RecDate FROM MyTable"的结果填充它.
我需要获得毫秒,但如果我执行以下操作,则毫秒始终为0:
DateTimeOffset dto = DateTimeOffset.Parse(dt.Rows[0][0].ToString());
Run Code Online (Sandbox Code Playgroud)
将RecDate列中的值放入dto变量的正确方法是什么?
是否有一个AddModelError()的重载用于将Exception作为参数?
如果我在控制器中包含以下代码:
ModelState.AddModelError( "", new Exception("blah blah blah") );
ModelState.AddModelError( "", "Something has went wrong" );
if (!ModelState.IsValid)
return View( model );
Run Code Online (Sandbox Code Playgroud)
以下是我的观点:
<%= Html.ValidationSummary( "Please correct the errors and try again.") %>
Run Code Online (Sandbox Code Playgroud)
然后,错误摘要中仅显示"Something出错"文本.
使用WiX 3.5,我有一个带有实例转换的MSI,允许我在具有不同产品名称的同一台机器上安装软件.为此,我在条件定义的.wxs文件中有一个"硬编码"的产品ID和名称列表.但是,我只有一个包含文件和非文件资源的Feature-ComponentRef定义.
安装似乎工作正常,但卸载实例演示了这两个来源中提到的行为:
http://msdn.microsoft.com/en-us/library/aa367797(v=VS.85).aspx
和
具体来说,除了我的应用程序的最后一个实例之外,没有任何非文件资源(在这种情况下,注册表项)被卸载.(即,如果我按此顺序卸载:instance1,instance2和instance3 - 只删除instance3的非文件资源.
我假设这与非文件组件没有唯一的GUID有关(而这对文件组件来说不是问题)
所以,我想知道一个有效的方法是使用一个产品ID,名称和一组功能来定义单个.wxs文件,但是有一个自定义引导程序为产品和非文件组件生成新的GUID然后插入在运行时进入MSI数据库?即,当需要卸载或更新时,我会在注册表中查询已安装的实例并检索其GUID.
这将允许在运行时创建实例,而不是事先在.wxs中进行硬编码,并且可以干净地卸载.
那有意义吗?Burn会让一切变得更好吗?:)
是否有一种相当简单的方法让FxCop检查所有程序集是否声明了特定的属性值?我想确保每个人都更改了创建项目时的默认值:
[assembly: AssemblyCompany("Microsoft")] // fail
[assembly: AssemblyCompany("FooBar Inc.")] // pass
Run Code Online (Sandbox Code Playgroud) 一个我从未解决过的问题.我将用两个代码示例进行说明,其中一个工作,另一个不工作:
Page_Load()
{
FontFamily[] oFamilyFontList = FontFamily.Families;
DropDownList_Fonts.DataSource = oFamilyFontList;
DropDownList_Fonts.DataBind();
string[] colorName = System.Enum.GetNames(typeof(KnownColor));
DropDownList_FontColor.DataSource = colorName;
DropDownList_FontColor.DataBind();
}
Run Code Online (Sandbox Code Playgroud)
<asp:DropDownList
ID="DropDownList_Fonts" DataTextField="Name"
DataValueField="Name" runat="server" >
</asp:DropDownList>
<asp:DropDownList
ID="DropDownList_FontColor" DataTextField="colorName"
DataValueField="colorName" runat="server" >
</asp:DropDownList>
Run Code Online (Sandbox Code Playgroud)
第一个DropDownList填充没有任何错误,因为每个对象oFamilyFontList都有一个属性'Name',它与DataText和DataValue字段绑定.
第二个没有任何属性,它只是一个字符串数组.我可以在两个字段内放置什么来使其工作?
我在Visual Studio解决方案中有一些项目,最终的项目引用包含引用项目的错误GUID.(可能是由于引用的项目在某个阶段重新创建)
例如.考虑一个具有以下属性的项目CoreProject.csproj:
<ProjectGuid>{93803F9C-8C65-4949-8D44-AB7A3D0452C8}</ProjectGuid>
<OutputType>Library</OutputType>
<RootNamespace>CoreProject</RootNamespace>
<AssemblyName>CoreProject</AssemblyName>
Run Code Online (Sandbox Code Playgroud)
另一个项目包括对此的引用,但在某个阶段GUID已更改,现在不正确.
<ProjectReference Include="..\CoreProject\CoreProject.csproj">
<Project>{5FD52517-79F8-41D2-B6F2-EA2D8A886549}</Project>
<Name>CoreProject</Name>
</ProjectReference>
Run Code Online (Sandbox Code Playgroud)
解决方案仍然在Visual Studio和msbuild中正确加载和构建,但我怀疑错误的GUID可能会在VS中产生一些性能影响.
解决方案非常庞大,许多项目存在此问题,我不希望手动重新添加这些引用.是否有任何工具或宏可以"修复"项目参考GUID?
我有一个序列化为字符串的日期"2012-06-20T13:19:59.1091122Z"
使用DateTimeConverter,将其转换为DateTime对象{22:49:59.1091122},将Kind属性设置为"Local".
例如.以下测试失败:
private static readonly DateTime UtcDate = new DateTime(634757951991091122, DateTimeKind.Utc);
private const string UtcSerialisedDate = "2012-06-20T13:19:59.1091122Z";
[Test]
public void DateTimeConverter_Convert_From_Utc_String()
{
// Arrange
var converter = TypeDescriptor.GetConverter(typeof(DateTime));
// Act
var result = converter.ConvertFrom(UtcSerialisedDate);
// Assert
Assert.AreEqual(UtcDate, result);
Assert.AreEqual(DateTimeKind.Utc, ((DateTime)result).Kind);
}
Run Code Online (Sandbox Code Playgroud)
我对此感到有些惊讶......我原本预计转换器返回的DateTime对象将是UTC.
文档确实说DateTimeConverter使用DateTime.Parse,但我猜它不能使用DateTimeStyles.RoundtripKind选项.
有没有办法解决?
我对 Azure、Pipelines 等完全陌生。
我正在尝试创建一个由网站和 WebJob(定期运行的后台作业)组成的应用服务。我想使用用 Yaml 文件编码的管道来构建和部署它。
我使用一个非常简单的 ASP.Net Core 网站(项目“pipelines-dotnet-core”)和一个简单的 .Net Core 控制台程序(项目“WebJobsSDKSample”)创建了一个 Visual Studio 解决方案。
我创建了 Yaml 文件来构建、发布网站并将其部署到我的应用服务。这工作正常,我可以在浏览器中打开该站点。
然后我扩展 Yaml 文件以将控制台程序项目的输出文件夹复制到网站的发布文件夹,将结果压缩为 zip 文件并部署该 zip 文件。我知道我必须将控制台程序项目输出文件夹复制到网站发布文件夹下的/App_Data/jobs/triggered/app。
这个新管道运行良好,并且网站仍然可以正确部署。但是,当我打开应用服务的 WebJobs 页面时,它显示“您尚未添加任何 WebJobs”。
我的 Yaml 文件的内容如下。我需要更改什么才能正确部署 WebJob?
此外,如果您能向我指出如何在 Yaml 管道文件中编写 WebJob 的清晰示例,那将非常有帮助。
trigger:
- master
pool:
vmImage: 'ubuntu-latest'
variables:
buildConfiguration: 'Release'
steps:
- script: dotnet build --configuration $(buildConfiguration)
displayName: 'dotnet build $(buildConfiguration)'
- task: DotNetCoreCLI@2
inputs:
command: publish
publishWebProjects: True
arguments: '--configuration $(BuildConfiguration)'
zipAfterPublish: false
- task: CopyFiles@2
displayName: 'Copy Console App …Run Code Online (Sandbox Code Playgroud) 我们一直在研究使用新的Fakes框架来帮助我们提高在.net 4.0框架下运行的一些遗留代码的测试覆盖率.不幸的是,似乎我们无法升级到.net 4.5.我是否正确地说我们不能将Fakes框架与.net 4.0(和VS2012)一起使用,而我们需要使用现在不支持的Moles框架?