将nuget包添加到项目时,它会将程序集放在解决方案级别的/ packages文件夹中.
我知道有办法改变这个,但我想知道为什么这是默认位置,因为这些原因似乎非常无益:
1)如果您的项目是多个解决方案的一部分,/ packages文件夹不一定是项目所期望的位置.
2)您需要将其手动检查到其他团队成员的源代码管理中,这比它是需要它的项目的一部分要方便得多.
3)如果将项目移动到文件系统上的其他位置或者移动到没有完整代码库的其他计算机上,它将找不到它所期望的/ packages文件夹.
如果NuGet刚刚在项目中使用/ packages文件夹而不是解决方案,似乎所有这些都将得到解决.这似乎是一个更合理的地方放置项目所依赖的包.
所以......我假设在解决方案层面上有一些很好的理由,我希望有人可以启发我.
我知道可以将我们的源/符号发布到符号服务器,或使用像SymbolSource.org这样的东西来允许我们在引用DLL时进入代码.
但是当我们不在调试会话中时,我发现无法访问相同的代码.
SymbolSource.org有一个演示计算器应用程序,如下所示:
var c = new SimpleCalculator();
Console.WriteLine(c.Add(1, 2));
Run Code Online (Sandbox Code Playgroud)
当我调试时,我可以轻松地进入Add()并查看源代码,但是当我只是查看代码时,没有办法做到这一点.
我猜是因为某种原因这是不可能的b/c它会非常有用,我没有看到有人在谈论如何做到这一点.
我开始在 Windows 应用程序项目上使用 StructureMap。在学习基础知识的过程中,我发现了两种方法来安排我的解决方案来实现相同的目标,我想知道是否有人可以评论这两种方法中的一种是否是更好的选择,以及为什么。
这里的目标是使用 IOC,以便我可以使用 2 个服务而不需要依赖它们。因此,我在业务层中创建了接口,然后在基础设施项目中实现了这些接口,并在那时包装了实际的服务。
在我的第一次尝试中,我创建了一个项目 DependencyResolver,其中包含使用流畅接口初始化结构图的代码(当有人想要 IServiceA 时,给他们一个 ServiceX 的实例)。因为 DependencyResolver 的初始化需要从我的应用程序启动,所以我有一个从应用程序到 DependencyResolver 的引用,如下所示:
然后我发现我可以删除对 DependencyResolver 的引用,并依靠 StructureMap 扫描器和命名约定在运行时获取该引用,所以我的设置如下所示:
因此,我进一步采用了命名约定,深入到我正在使用的服务中,并且能够完全取消 DependencyResolver。此时,我完全依赖结构图扫描仪和命名约定来正确设置:
所以。我在这里,不太确定我应该如何看待这三个选项。选项 1 似乎不错,但由于使用了 StructureMap,我的 UI 间接引用了它不应该(直接)引用的所有内容。但是,我不确定这是否真的重要。
选项 2 消除了从应用程序到 DependencyResolver 的引用的需要,并依赖命名约定来访问该项目中的类,并且我仍然对所有剩余的设置具有高级别的控制权(但我现在依赖于 StructureMap)直接来自我的应用程序)。
选项 3 似乎是最简单的(只需以某种方式命名所有内容,然后扫描程序集),但这似乎更容易出错且脆弱。特别是如果我想做一些比 IServiceAbc => ServiceAbc 更复杂的事情。
那么,有谁对我在这方面有更多经验的人可以给我一些建议吗?
我是否应该避免从我的应用程序间接引用我的服务?如果是,这样做的真正好处是什么?我认为尝试用命名约定做所有事情只在简单的项目中才是明智的,对吗?
是否有一个标准模式来完成我在这里想做的事情?
抱歉发了这么长的帖子..
我一直在努力尝试获取自己的域名,例如mydomain.com,托管在Azure网站上.
我升级/缩放以将我的设置更改为"共享".
我将来自www.mydomain.com的CNAME记录添加到mydomain.azurewebsites.net.
我在www. Managedmains下的azure中添加了www.mydomain.com到我的网站,它允许我成功添加它.
我可以通过www.mydomain.com成功浏览网站.
我将mydomain.com的A记录更改为指向Azure网站的"管理域"部分下列出的IP地址.
CNAME和A记录已根据我的计算机和centralops.net DNS查找工具上的测试进行了传播.
如果我浏览到mydomain.com,我会收到404. www.mydomain.com按预期工作.
有人可以帮忙吗?
我正在尝试将消息发布到Slack通道.Slack提供了一个cURL命令的示例,但是逐字运行不起作用.
提供的命令是:
curl -X POST --data-urlencode 'payload={"channel": "#deployment", "username": "webhookbot", "text": "This is posted to #deployment and comes from a bot named webhookbot.", "icon_emoji": ":ghost:"}' https://hooks.slack.com/services/SomeCode/OtherCode/3rdCode
Run Code Online (Sandbox Code Playgroud)
我在我的机器上安装了最新的cURL(运行Windows 8.1),当运行上面的脚本时,我得到:
curl: (6) Could not resolve host: #deployment,
curl: (6) Could not resolve host: username
curl: (6) Could not resolve host: webhookbot,
Run Code Online (Sandbox Code Playgroud)
等等
我认为它可能是关于Windows控制台如何处理单引号和双引号的问题,但我一直无法让它工作.
我发现如果我用一个文件cache@filename.txt替换json字符串然后它可以工作,但我真的需要json是动态的.
有人能说出这里有什么不对吗?
我们有一个应用程序,它将webforms用于一些较旧的Web应用程序页面,但也包含一些较新功能的MVC功能.我们对下载必须在服务器上处理的文件有一些新的要求(而不是直接链接到Web服务器上的静态文件).
我没有看到任何迹象表明是否有理由应该使用ASHX处理程序而不仅仅使用MVC控制器并对响应对象进行操作并在action方法结束时返回EmptyResult().
MVC是否有最佳实践?ASHX处理程序是否应该用于WebForms,或者它们是否提供了使用MVC进行此类文件下载功能的一些好处?
ashx ×1
asp.net ×1
asp.net-mvc ×1
azure ×1
curl ×1
dns ×1
nuget ×1
slack ×1
slack-api ×1
structuremap ×1