小编Joh*_*son的帖子

如何在NuGet包中为类库包含Xml Docs?

我正在为C#类库创建一个NuGet包,我想在库中包含生成的Xml文档.这是我的nuspec文件:

<?xml version="1.0" encoding="utf-8"?>
<package>
  <metadata>
    <id>MyLibrary</id>
    <version>1.0.0.0</version>
    <authors>John Nelson</authors>
    <language>en-US</language>
    <description>A C# class library</description>
  </metadata>
  <files>
    <file src="..\..\build\MyLibrary.dll" target="lib\Net40" />
    <file src="..\..\build\MyLibrary.xml" target="lib\Net40" />
  </files>
</package>
Run Code Online (Sandbox Code Playgroud)

当我使用此命令构建包时:

nuget pack MyLibrary.nuspec
Run Code Online (Sandbox Code Playgroud)

它会产生错误.如果我删除该行:

<file src="..\..\build\MyLibrary.xml" target="lib\Net40" />
Run Code Online (Sandbox Code Playgroud)

NuGet.exe成功创建了nupkg.我甚至可以解压缩包,并验证内容是否正确.我究竟做错了什么?xml文件应该进入不同的目标目录吗?

c# nuget nuget-package

93
推荐指数
2
解决办法
2万
查看次数

调用Stream.Write和使用StreamWriter有什么区别?

实例化一个Stream对象有什么区别,例如MemoryStream调用memoryStream.Write()方法写入流,然后StreamWriter用流实例化一个对象并调用streamWriter.Write()

请考虑以下情形:

你有一个方法,它接受一个Stream,写一个值,然后返回它.稍后将读取流,因此必须重置位置.有两种可能的方法(两者似乎都有效).

// Instantiate a MemoryStream somewhere
//     - Passed to the following two methods
MemoryStream memoryStream = new MemoryStream();

// Not using a StreamWriter
private static Stream WriteToStream(Stream stream, string value)
{
    stream.Write(Encoding.Default.GetBytes(value), 0, value.Length);
    stream.Flush();
    stream.Position = 0;
    return stream;
}

// Using a StreamWriter
private static Stream WriteToStreamWithWriter(Stream stream, string value)
{
    StreamWriter sw = new StreamWriter(stream);
    sw.Write(value, 0, value.Length);
    sw.Flush();
    stream.Position = 0;
    return stream; …
Run Code Online (Sandbox Code Playgroud)

c# memorystream streamwriter

15
推荐指数
1
解决办法
1万
查看次数

为什么我的NuGet Gallery从nuget push返回500?

我在我工作的Web服务器(在IIS 7.0下)上设置了新的NuGet Gallery.该网站本身已设置并运行良好.我们可以注册帐户,确认电子邮件地址,甚至可以通过网站本身上传新包.

我们的自动构建脚本需要能够将新构建的NuGet包推送到库中.当我使用NuGet的push命令时:

nuget.exe push build\nuget\BaconAndEggs.1.0.0.1.nupkg 1451002a-8c63-4174-b7ed-73dd3e7bcdf0 -Source http://somenearbyserver/
Run Code Online (Sandbox Code Playgroud)

我得到以下结果:

Pushing BaconAndEggs 1.0.0.1 to 'http://somenearbyserver/'...
Failed to process request. 'Internal Server Error'.
The remote server returned an error: (500) Internal Server Error..
Run Code Online (Sandbox Code Playgroud)

该网站能够很好地上传新包,但命令行不是.如果我在运行fiddler的情况下尝试push命令,它会在执行push命令时观察到两个连续的请求.一个人似乎正在触摸该网站以确保它在那里,而第二个是实际的推送命令.

Request 1: GET http://somenearbyserver/ 200 OK
Request 2: PUT http://somenearbyserver/api/v2/package/ 500 Internal Server Error
Run Code Online (Sandbox Code Playgroud)

PUT请求的内容是正确的,它包含API密钥和有效负载.在Web服务器上查看,事件查看器中没有错误,elmah没有捕获任何内容.

Fiddler将此显示为对PUT的响应:

HTTP/1.1 500 Internal Server Error
Content-Type: text/html
Server: Microsoft-IIS/7.0
X-Powered-By: ASP.NET
Date: Wed, 18 Jan 2012 20:21:08 GMT
Connection: close
Content-Length: 1208

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> …
Run Code Online (Sandbox Code Playgroud)

nuget

12
推荐指数
1
解决办法
1万
查看次数

在结束</ html>标记之后包含标记是否可以?

由于关闭html标记是可选的,是否可以在结束标记后包含标记</html>

Phil Haack的RouteDebugger库就是一个例子.一些示例输出如下所示:

<!DOCTYPE html>
<html>
<head>
    <title>Index</title>
    <link href="/Content/Site.css" rel="stylesheet" type="text/css" />
    <script src="/Scripts/jquery-1.4.4.min.js" type="text/javascript"></script>
</head>

<body>

<h2>Index</h2>

</body>
</html>
<!-- Extra content after closing html tag! -->
<html>
<div id="haackroutedebugger" style="background-color: #fff;">
    <style>
        #haackroutedebugger, #haackroutedebugger td, #haackroutedebugger th {background-color: #fff; font-family: verdana, helvetica, san-serif; font-size: small;}
        #haackroutedebugger tr.header td, #haackroutedebugger tr.header th {background-color: #ffc;}
    </style>
    <hr style="width: 100%; border: solid 1px #000; margin:0; padding:0;" />
    <h1 style="margin: 0; padding: 4px; border-bottom: solid 1px …
Run Code Online (Sandbox Code Playgroud)

html asp.net-mvc-3

9
推荐指数
1
解决办法
648
查看次数

如何避免重复RavenDB等文档数据库中的数据?

鉴于文档数据库(如RavenDB)是非关系型的,您如何避免复制多个文档共有的数据?如果可以复制数据,你如何维护这些数据?

document-database ravendb

6
推荐指数
1
解决办法
1796
查看次数

使用Nancy self host + TopShelf的空白响应

我试图在Topshelf服务中使用Nancy(使用Razor查看nuget包的Self Hosting).我在http:// localhost:8585 /上托管它,它在我处于调试模式或直接调用我的可执行文件时工作正常.Nancy模块完美地提供了剃刀视图.

然后我安装应用程序:

myapp.exe install
Run Code Online (Sandbox Code Playgroud)

当我启动服务时,似乎工作正常,并且没有错误.然后,当我在浏览器中访问http:// localhost:8585 /时,我得到一个空白的回复.任何想法为什么?

在我开始使用Topshelf托管服务之前,我启动Nancy:

_nancyHost = new NancyHost(_baseUri);
_nancyHost.Start();
Run Code Online (Sandbox Code Playgroud)

之后,topshelf服务配置并启动如下:

using (Container)
{
    var host = HostFactory.New(config =>
    {
        config.EnableDashboard();
        config.AfterStartingServices(() => Console.WriteLine("Done starting..."));
        config.Service<EventHandlerService>(s =>
        {
            s.SetServiceName("EventHandlerService");
            s.ConstructUsing(c => Container.Get<EventHandlerService>());
            s.WhenStarted(n => StartService(n, stopwatch));
            s.WhenStopped(n => StopService(n, stopwatch));
        });
        config.RunAsLocalSystem();
        config.SetDescription("A service for processing events.");
        config.SetDisplayName("EventHandlerService");
        config.SetInstanceName("EventHandlerService");
        config.SetServiceName("EventHandlerService");
    });
    host.Run();
}
Run Code Online (Sandbox Code Playgroud)

我使用的是ninject,StartService和StopService方法只是打印stopwatch.ElapsedMilliseconds当前值的函数.

这是我的Nancy模块的配置:

Get["/"] = parameters =>
{
    var indexViewModel = new IndexViewModel { CurrentDateTime = DateTime.Now, WorkLog …
Run Code Online (Sandbox Code Playgroud)

c# topshelf nancy

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

如何处理百岁老人出生日期?

" 百岁老人是一个年满100岁或以上的人." - 维基百科

几种方法可以提示用户出生日期,但是假设我们选择了下拉方法.

你会如何处理最早的可选日期?你选择任意一年(如1875年)并填充到现在?

或者,你是否为一个创纪录的年龄(Jeanne Calment,122岁)咨询了一些资源,增加了几年,并向后填充?

usability user-interface

3
推荐指数
2
解决办法
369
查看次数