在.NET中,构建项目时可以使用两个版本号,即文件版本和汇编版本.你是如何使用这些数字的?保持不变?自动递增一个,但手动更改另一个?
那个AssemblyInformationalVersion属性呢?
我发现这个支持Microsoft知识库(KB)的文章提供了一些帮助: 如何使用汇编版本和汇编文件版本.
我正在使用WinForm .Net应用程序,其基本UI包括工具栏按钮,菜单项和按键,它们都启动相同的底层代码.现在,每个事件的事件处理程序调用执行该函数的常用方法.
根据我的阅读,这种类型的操作可以由Command设计模式处理,还具有自动启用/禁用或检查/取消选中UI元素的额外好处.
我一直在网上寻找一个很好的示例项目,但实际上还没有找到一个.有没有人有一个可以分享的好榜样?
我有一个具有多个实现的接口(称为IAcmeService).
FileSystemAcmeService
DatabaseAcmeService
NetworkAcmeService
Run Code Online (Sandbox Code Playgroud)
最终用户需要能够选择将使用哪种实现,并保存该选择.
目前我正在配置我的IOC容器(Unity)以使用名称注册所有已知的实现.
container.RegisterType(of IAcmeService, FileSystemAcmeService)("FileSystemAcmeService")
container.RegisterType(of IAcmeService, DatabaseAcmeService)("DatabaseAcmeService")
container.RegisterType(of IAcmeService, NetworkAcmeService)("NetworkAcmeService")
Run Code Online (Sandbox Code Playgroud)
为了允许用户保存他们的选择,我有app.config配置部分文件,用于存储要使用的所选服务名称.
要解决所选的实现,我正在使用该服务的类的Initialize方法中进行手动解析.
Private _service as IAcmeService
Public Sub Initialize()
_service = container.Resolve(of IAcmeService)(_config.AcmeServiceName)
End Sub
Run Code Online (Sandbox Code Playgroud)
这似乎不对,因为我的班级必须知道容器.但我无法想出另一种方式.
是否有其他方法可以让最终用户选择而不让班级知道容器?
我正在尝试使用NUnit设置测试来执行ASP.NET WebApi控制器的一些集成测试.我发现有几篇文章讨论使用HttpServer进行内存托管,这似乎可以通过不需要托管所有内容的Web服务器来简化操作.
问题是我得到的唯一回应是404-Not Found.
通过浏览器或Fiddler手动测试时,控制器正在工作.路径定义是从工作站点复制的.api项目由测试项目引用,并且dll将被复制到与测试相同的文件夹中.
提前致谢.
这是测试类
[TestFixture]
public class InMemoryTests
{
private HttpServer Server;
private string UrlBase = "http://some.server/";
[TestFixtureSetUp]
public void Setup()
{
var config = new HttpConfiguration();
config.Routes.MapHttpRoute(name: "Default", routeTemplate: "api/{controller}/{action}/{id}", defaults: new { id = RouteParameter.Optional });
config.IncludeErrorDetailPolicy = IncludeErrorDetailPolicy.Always;
Server = new HttpServer(config);
}
[Test]
public void GetOrderStatus()
{
var client = new HttpClient(Server);
var request = createRequest("api/Orders/GetOrderStatus?companyCode=001&orderNumber=1234", "application/json", HttpMethod.Get);
using (HttpResponseMessage response = client.SendAsync(request).Result)
{
Assert.IsNotNull(response);
Assert.AreEqual(HttpStatusCode.OK, response.StatusCode); …Run Code Online (Sandbox Code Playgroud) 我正在完成安装CruiseControl.net并转换Msbuild脚本以使用它的过程.我希望我们的内部版本号能够反映Subversion版本号.似乎LastChangeLabeller应该可以工作,但我得到的只是"未知".
我的最终目标是既具有版本号(递增1)和颠覆修订格式化版本号.但是现在我已经满足了修订号.
澄清:我正在尝试更新CruiseControl.Net内部版本号.不只是编译结果中的版本号.