尝试复制会是一个真正的痛苦,所以我希望有人能快速回答......
假设我有一个.NET 4.0应用程序,引用了.NET 2.0库(在本例中为SharpZipLib).这当然可以在安装了.NET 2.0和4.0的普通机器上正常工作.
如果运行此应用程序的服务器只有.NET 4.0而不是2.0(或3.0/3.5等),那么我需要做些什么才能让.NET 2.0库正常运行?
从我所看到的,看起来我可以为配置设置supportedRuntime
,但我不太明白究竟是什么.
配置设置是否有效,或者只有.NET 4.0库在此环境中运行?
(这是一个假设的环境 - 我不打算永远有我自己的4.0和2.0不服务器,但如果有人是够疯狂去做,我希望能够支持他们).
谢谢
不知怎的,我很幸运,从来没有处理过这个问题,尽管我认为这是一个常见的问题:
我有一个网络项目,让我们称之为SomeProject
.SomeProject
有一个第三方库的参考,我们称之为SomeThirdParty
版本1.0.SomeProject
还有一个本土类库的参考,我们称之为SomeLibrary
.SomeLibrary
也有一个参考SomeThirdParty
,但不同的版本(让我们说2.0).
版本1.0和2.0 SomeThirdParty
共享大多数相同的签名,但是是不同的实现.我需要SomeProject
使用1.0实现,并SomeLibrary
尽可能使用2.0实现.
我SomeProject
使用它对log4net的引用进行编译.最终在bin目录中的DLL是SomeProject
引用的DLL .在运行时,当运行代码时SomeLibrary
,它会尝试从2.0版本执行代码SomeThirdParty
,当然FileLoadException: Could not load file or assembly '
也会失败,抛出SomeThirdParty, Version=2.0.0.0, Culture=[etc.]' or one of its dependencies. The located assembly's manifest definition does not match the assembly reference.
显然我可以升级SomeProject
到较新的DLL或降级SomeLibrary
到较旧的DLL,但由于许多原因它不是理想的.
我认为正确的答案涉及在GAC中安装SomeThirdParty,但我不确定我将如何做到这一点,以及它将如何影响其他开发人员和服务器.
您可能有任何建议表示赞赏.
谢谢您的帮助.
我们是否知道新功能(目前仍为测试版)Google Cloud功能的热身/冷启动时间是多少?或者在它再次冷却之前超时?
我一直在按照使用模式尝试Azure功能,而且它非常糟糕 - 似乎不一致但我已经看过30秒,而且在它再次冷却之前似乎是大约5分钟没用.
我假设Google的功能有同样的问题,但我甚至没有看到关于这些时间段的初步文档.答案似乎是每隔X分钟"ping"以保持活着,但知道X应该是什么会对计费产生影响.
我是TFS的新手,来自SVN背景.我想第一次设置TFS,所以我们正在做出设计决策.
我们计划在团队项目之间共享二进制文件,建议的解决方案似乎是专门为二进制文件创建一个团队项目.
主代码库的推荐目录结构似乎是:
/DevProjects/TeamProjectName/Main/Source/ProductName/Source/ProjectName
Run Code Online (Sandbox Code Playgroud)
所以我的二进制文件将在
/DevProjects/Binaries/
Run Code Online (Sandbox Code Playgroud)
在我的.csproj文件中,我将二进制文件引用为
../../../../../../Binaries/{BinaryFile}
Run Code Online (Sandbox Code Playgroud)
这对于主代码库来说很好,但在推荐的标准中也是将分支设置为:
/DevProjects/TeamProjectName/Development/BranchName/Source/ProductName/Source/ProjectName
Run Code Online (Sandbox Code Playgroud)
这是与主代码库不同的一个级别,因此.csproj文件不会引用正确的位置.
我的选择似乎是在.csproj文件中使用绝对路径(我甚至不知道如何在IDE中执行,因为默认情况下它会执行相对路径),或者分支与我正在读取的不同.
有什么建议?
我遇到一个问题,实体框架edmx文件显然正在失去与它构建的连接字符串的关系.
我的.edmx文件的设计者工作得很好 - 我可以做"从数据库更新",它总是跳转到向导步骤,这将允许我添加表,过程等.现在当我点击"从数据库更新"时,我得到了"选择你的数据连接"向导步骤,它希望我选择一个新数据库 - 如果我完成这些步骤,它将为我创建一个新的连接字符串,并重新生成所有对象,就像我从刮.
我的app.config文件的内容是之前的问题,正是因为他们,但我没有修改该文件,然后将其恢复它的方式.我在想某种方式修改这个文件触发了导致我失去绑定的东西,但我无法弄清楚那是什么.
配置文件中的连接字符串键与EDMX文件中的CdmEntityContainer属性匹配.
我甚至试图杀死我的代码库并从源代码控制中重新检出,但这似乎不起作用.在同一个代码库上工作的其他人也遇到了同样的问题,所以在项目的某个地方似乎肯定存在一些问题.但是.csproj或.sln文件没有相关的更改 - 只是我看不到可能造成这种情况的任何地方.
有任何想法吗?我现在看到的唯一解决方案是从头开始删除并重新创建edmx文件,但我绝对希望找到更好的东西.
编辑:如果我在项目中生成一个全新的edmx,与任何现有的edmx无关,它似乎可以解决其余问题.它必须"重置"项目中的任何时髦.但这不是一个合法的解决方案,所以我仍然希望有更好的东西.
假设我有一个包含异步方法的接口,我有两个不同的接口实现.两种实现中的一种是自然异步,而另一种则不是.实现非异步方法的"最正确"方法是什么?
public interface ISomething {
Task<Foo> DoSomethingAsync();
}
// Normal async implementation
public class Implementation1 : ISomething {
async Task<Foo> ISomething.DoSomethingAsync() {
return await DoSomethingElseAsync();
}
}
// Non-async implementation
public class Implementation2 : ISomething {
// Should it be:
async Task<Foo> ISomething.DoSomethingAsync() {
return await Task.Run(() => DoSomethingElse());
}
// Or:
async Task<Foo> ISomething.DoSomethingAsync() {
return DoSomethingElse();
}
}
Run Code Online (Sandbox Code Playgroud)
我试着跟上Stephen Cleary的博客,我知道其中任何一个都没有提供任何异步的好处,我对此很满意.第二个对我来说似乎更正确,因为它不会假装不是它的东西,但它确实给出了编译器警告,并且那些加起来并且分散注意力.
如果这会产生影响,那么这些都将在ASP.NET(Web MVC和WebAPI)中.
我正在寻找一种从Toad for Oracle(9.5.0.31)导出已保存的用户名/密码的方法.它不一定是可用的导入格式 - 即使是明文格式也没关系.
我相信密码是在CONNECTIONPWDS.INI中加密存储的,但是根据我的阅读,该文件不会从一台机器传输到另一台机器.除了" 这是一个非常好的建议...... " 之外,Quest网站或雅虎团体似乎没有任何关于此的内容.
有没有人有幸做到这一点?或者我不得不为每个帐户挖掘密码?
谢谢
我试图在.NET中生成一个随机字符串并转换为字节,并遇到一些困难.我想要完整的可能字符集,我的理解是字符串可以包含任何字符.
我的代码目前如下:
var plainText = new StringBuilder();
for (int j = 0; j < stringLength; ++j)
{
plainText.Append((char)_random.Next(char.MinValue, char.MaxValue));
}
byte[] x = Encoding.Unicode.GetBytes(plainText.ToString());
string result = Encoding.Unicode.GetString(x);
Run Code Online (Sandbox Code Playgroud)
从理论上讲,plainText
并result
应该是相同的.它们大致相同,但是一些原始字符丢失,似乎是55000-57000范围内的字符 - 它们被替换为字符65533.
我假设问题与我的编码有关,但我认为Unicode会正确处理这个问题.我试过UTF8和UTF32,但那些给我同样的问题.
有什么想法吗?
我仍在了解 .NET 4.5 的各种异步功能,并且遇到了一些有趣的事情。鉴于我的 MVC 控制器中的以下内容,执行 (1) 和 (2) 时我得到不同的结果
public ActionResult Index() {
var stuff = SomeExpensiveFunction();
return View(stuff);
}
private byte[] SomeExpensiveFunction() {
string url = "http://some-url.../";
// (1)
var wc = new WebClient();
return wc.DownloadDataTaskAsync(url).Result;
// (2)
var hc = new HttpClient();
return hc.GetAsync(url).Result.Content.ReadAsByteArrayAsync().Result;
}
Run Code Online (Sandbox Code Playgroud)
从表面上看,它们似乎是相同的 -WebClient.DownloadDataTaskAsync
和HttpClient.GetAsync
都是async
返回Task
. 版本WebClient
返回,Task<byte[]>
而HttpClient
版本返回Task<HttpResponseMessage>
,我必须从中挖掘字节,但我正在.Result
以任何一种方式调用,我希望在离开函数之前完成。
对于(1),我得到一个带有 的黄屏An asynchronous operation cannot be started at this time... …
使用parseInt方法解析字符串中的整数时,如何检测是否发生上溢/下溢?
我想到的方法是将Number.MAX_SAFE_INTEGER和Number.MIN_SAFE_INTEGER转换为字符串,并检查要检查的字符串是否在此范围内.
c# ×5
.net ×4
async-await ×2
string ×2
app-config ×1
asp.net ×1
asp.net-mvc ×1
asynchronous ×1
clr ×1
dll ×1
encoding ×1
export ×1
javascript ×1
parsing ×1
passwords ×1
reference ×1
tfs ×1
toad ×1
unicode ×1
version ×1