刚刚玩现在发布的Silverlight 2.0.我试图在控件中放一个简单的日历.然而,该项目似乎不知道我在说什么: -
<UserControl x:Class="MyFirstSL2.Test"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
>
<Grid Background="#FF5C7590">
<Calendar />
</Grid>
</UserControl>
Run Code Online (Sandbox Code Playgroud)
Visual Studio 2008只在日历下面放置蓝线,说明找不到日历类型.我需要添加组件吗?哪一个?我是否需要向Xaml添加另一个名称空间?
我的工作场所正计划搬到Team Foundation Server,这不是一个太快的时刻 - 任何可以摆脱Visual SourceSafe癌症的事情.
但是,我必须要问 - TFS中的源代码控制是否与VSS明显不同(并且更好),还是只是同一个东西的"强化"版本?
我现在问这个,因为这可能是我建议像Subversion这样的东西的最后一个窗口.
我有一个软件项目,包含多个项目文件和多个解决方案文件.解决方案文件与项目文件具有一对多的关系,并且给定的项目文件可能出现在多个不同的解决方案文件中.
是否有任何好的/漂亮的方法来提供解决方案文件和项目文件之间关系的映射?通过VS或某种实用程序.
我想做的是说"嘿,在这个目录及其子目录中有很多解决方案文件和项目文件 - 请告诉我哪些解决方案使用哪些项目并将其映射出来"
我意识到可以通过打开每个解决方案文件并检查它来产生净效果,但我正在寻找一种自动化,可重复的操作.
编辑:我担心我的解决方案/项目组合可以追溯到VS2003,所以我也需要映射它们.
我有一个应用程序,目前用C#编写,它可以采用Base64编码的字符串并将其转换为Image(在这种情况下为TIFF图像),反之亦然.在C#中,这实际上非常简单.
private byte[] ImageToByteArray(Image img)
{
MemoryStream ms = new MemoryStream();
img.Save(ms, System.Drawing.Imaging.ImageFormat.Tiff);
return ms.ToArray();
}
private Image byteArrayToImage(byte[] byteArrayIn)
{
MemoryStream ms = new MemoryStream(byteArrayIn);
BinaryWriter bw = new BinaryWriter(ms);
bw.Write(byteArrayIn);
Image returnImage = Image.FromStream(ms, true, false);
return returnImage;
}
// Convert Image into string
byte[] imagebytes = ImageToByteArray(anImage);
string Base64EncodedStringImage = Convert.ToBase64String(imagebytes);
// Convert string into Image
byte[] imagebytes = Convert.FromBase64String(Base64EncodedStringImage);
Image anImage = byteArrayToImage(imagebytes);
Run Code Online (Sandbox Code Playgroud)
(而且,现在我正在看它,可以进一步简化)
我现在有一个业务需要在C++中这样做.我正在使用GDI +绘制图形(目前只有Windows),我已经有了用C++ 解码字符串的代码(到另一个字符串).然而,我磕磕绊绊的是将信息传递到GDI +中的Image对象.
在这一点上,我想我也需要
a)一种将Base64解码后的字符串转换为IStream以转换为Image对象的FromStream函数的方法
b)一种将Base64编码的字符串转换为IStream以提供给Image对象的FromStream函数的方法(因此,代码与我目前使用的代码不同)
c)我没有想到的一些完全不同的方式.
我的C++技能非常生疏,我也被托管的.NET平台所破坏,所以如果我攻击这一切都错了,我会接受建议. …
考虑一下这个代码(预装了一个例子):
DateTime dt1 = DateTime.Parse("7/30/2010 9:33:29.1234567 AM");
DateTime dt2 = DateTime.Parse("6/30/2010 9:33:00.7654321 AM");
TimeSpan ts = dt1 - dt2;
Console.WriteLine(string.Format( "{0:d.hh:mm:ss.ff}", ts ));
Run Code Online (Sandbox Code Playgroud)
这是我至少从.NET 1.1开始工作的一段代码的代表.
它在1.1到3.5中运行良好,具有以下输出(对于这些dummied up输入):
30.00:00:28.3580246
Run Code Online (Sandbox Code Playgroud)
但现在我发现它在.NET 4中死了,并显示错误消息:
Input string was not in a correct format.
因此,就好像.NET 4突然决定它不喜欢这种格式的时差.将线路更改为,比方说
Console.WriteLine(string.Format( "{0}", ts.ToString("d.hh:mm:ss.ff") ));
Run Code Online (Sandbox Code Playgroud)
具有相同的效果.
现在我注意到的事情是,如果我只是默认,.ToString()我得到相同的输出.我认为思考过程是这是针对未来版本中默认格式变化的保险政策.但现在它看起来并不像是一种选择.
有谁知道为什么这会改变,如果我做错了什么或者是否有最佳实践方法来做我想要完成的事情?
我有一个页面做了相当多的工作,我不希望用户能够离开该页面(关闭浏览器,回击按钮等)而不会收到警告.我发现onbeforeunload事件(我认为是特定于IE的,对我来说很好,因为项目使用了大量的ActiveX)非常有用.
问题是,我希望用户能够点击右上角的一个小"帮助"图标,随时弹出一个帮助窗口.这会导致onbeforeunload触发,即使主窗口永远不会到达任何地方并且页面永远不会卸载.
运行onbeforeunload事件时运行的JavaScript函数只将文本放入event.returnValue.如果我能够以某种方式确定帮助图标是被点击的图标那么我就不能在这种情况下将文本放入event.returnValue.但是我怎么能得到那个页面图呢?
我正在尝试将我的商店从使用 VSS 转换为 TFS。
我们当前的代码库由大量 Visual Studio 2008 解决方案组成,我注意到其中一些似乎导致 MSBuild 失败,但我不知道为什么。实际的解决方案本身及其持有的项目构建正确,但整体构建仍然失败。
ErrorsAndWarnings.txt 和 Release.txt 文件没有显示错误,只有警告(代码中的各种小东西我们需要清理)
BuildLog.txt 文件当然非常庞大,其中包含大量难以理解的文本。不过,据我所知,当涉及到这些 SLN 文件中的一个给它带来问题时,MSBuild 只会崩溃并死亡。
任务“MSBuild”
全局属性:
配置=发布
平台=任何 CPU
OutDir=C:\TFS\REPOSITORY\Full\Binaries\Release\
PublishDir=C:\TFS\REPOSITORY\Full\Binaries\Release\
跳过无效配置=真
运行代码分析=假
VCBuildOverride=C:\TFS\REPOSITORY\Full\Sources\Code\Solution\Solution.sln.Release.vsprops
VCBuildAdditionalLibPaths=
VCBuildAdditionalOptions=
VCBuildToolPath=
VCBuildUseEnvironment=
TeamBuildConstants=_TEAM_BUILD_
TargetsNotLogged=GetTargetPath;GetNativeManifest;GetCopyToOutputDirectoryItems
C:\Program Files\MSBuild\Microsoft\VisualStudio\TeamBuild\Microsoft.TeamFoundation.Build.targets(1008,5):
错误 MSB4018:“MSBuild”任务意外失败。
错误 MSB4018:System.NullReferenceException:未将对象引用设置为对象的实例。
错误 MSB4018:在 Microsoft.Build.BuildEngine.SolutionWrapperProject.AssignDependencyLevel(ProjectInSolution 项目,SolutionParser 解决方案,Dictionary`2 projectsByDependencyLevel)
错误 MSB4018:在 Microsoft.Build.BuildEngine.SolutionWrapperProject.AssignDependencyLevel(ProjectInSolution 项目,SolutionParser 解决方案,Dictionary`2 projectsByDependencyLevel)
错误 MSB4018:在 Microsoft.Build.BuildEngine.SolutionWrapperProject.AssignDependencyLevels(SolutionParser solution, Dictionary`2 projectsByDependencyLevel)
错误 MSB4018:在 Microsoft.Build.BuildEngine.SolutionWrapperProject.CreateSolutionProject(SolutionParser 解决方案,项目 msbuildProject,BuildEventContext 项目BuildEventContext,字符串 wrapperProjectToolsVersion,引擎 parentEngine,字符串 solutionProjectCache)
错误 MSB4018:在 Microsoft.Build.BuildEngine.SolutionWrapperProject.Generate(SolutionParser 解决方案,项目 msbuildProject,字符串工具版本覆盖,BuildEventContext 项目BuildEventContext)
错误 MSB4018:在 Microsoft.Build.BuildEngine.Project.Load(String projectFileName, BuildEventContext … 前言:老实说,我不确定这是否应该放在 StackOverflow、SuperUser 或 Doctype 上。如果需要位于超级用户上,请移动它。如果它需要在 Doctype 上,请关闭它,我将在那里重新发布它。
我们都知道,将您的电子邮件地址以任何格式放在互联网上的任何位置,无论是纯文本还是链接mailto:,都会导致它被垃圾邮件机器人收集。关于这个主题已经有很多 问题了。
但对于公司而言,垃圾邮件机器人只是开展业务成本的一部分。因此,虽然使用诸如以 的形式列出您的电子邮件地址之类的内容[someone] [at] [companyname] [dot] [com]可能会阻止垃圾邮件机器人,但它也会使潜在的付费客户经历足够的麻烦来忽略您(而且用户可能不够精明,无法理解正在发生的事情) ),所以你只能忍气吞声并处理垃圾邮件。
然而,我有一个客户有不同的问题 - 他们的潜在客户会访问几十个网站,单击电子邮件地址,粘贴准备好的文本和主题(有时甚至还粘贴我的客户的公司名称看起来好像不是他们发送给每个人的准备好的文本)。然后,我的客户花时间手工制作回复,结果却再也没有收到潜在客户的消息,因为在这种“随意的垃圾邮件发送者”方法中,在电子邮件中发回最低硬美元金额的供应商几乎获胜(并且我客户的业务是这样的,几乎毫无例外,供应商在没有见到您的情况下就向您报价,这是一个很大的危险信号,但这不是重点)。
因此,客户建议,虽然我们将他们的电子邮件以someone@companyname.com格式保留在网站上,但我们不会将其设置为可点击的 mailto: 链接。我们的想法是,也许必须选择电子邮件地址并将其复制到消息中的行为会阻碍一些“大众价格购物”客户。我客户所在的行业不适合重复业务,因此他们不太可能获得这些客户,而通过这种方法失去他们最终是无害的。
我对此表示怀疑,但我很好奇是否有更好的想法来阻止“休闲”垃圾邮件发送者。
澄清一下:我并不担心垃圾邮件机器人或屏幕抓取工具或任何习惯性或自动的东西。我所说的概念是,一个真实的人会访问数十个类似的网站,向每个公司发送相同的电子邮件,以找到最低的价格。这些客户永远不会雇用我的客户,因此我们正在寻找一种方法来减缓或阻止他们,同时又不会拒绝那些不只是向尽可能多的公司发送垃圾邮件的人。
我喜欢Visual Studio 2008的一个原因是能够重构和重新组织源代码文件中的"using"指令(这可能也是在2005年,我不记得了).
具体来说,我在谈论如何让它重新组织指令按字母顺序排列(尽管核心FCL库浮动到顶部)并删除任何不需要的指令(从未使用或不再使用)用过的).
有没有办法在整个旧代码库中自动进行重构(排序和修剪)?通过解决方案中的所有文件或跨多个解决方案文件.
我对现有的.NET 4代码进行了修改,以创建一个由可空整数组成的新属性.它在Windows服务中运行.
public static int? Port
{
get;
set;
}
Run Code Online (Sandbox Code Playgroud)
这个概念是,如果值为null,则会被忽略,但如果不是,则使用它(非默认方案)
if (Port != null)
{
client = new Client( Server, Port.Value );
}
else
{
client = new Client( Server );
}
Run Code Online (Sandbox Code Playgroud)
在我的机器上,它按预期工作.
但是,当部署到我们的测试服务器时,我从ASP.NET站点调用时会遇到异常.这是格式化的异常输出:
Exception: System.MissingMethodException
Exception Message: Method not found: 'Void NameOfAssembly.set_Port(System.Nullable`1<Int32>)'.
Exception Data: System.Collections.ListDictionaryInternal
Exception TargetSite: ** Unable to GetValue **
Exception HelpLink: NULL
Run Code Online (Sandbox Code Playgroud)
就好像代码没有正确部署,或者它只是找不到自动的get/set方法.同事已经进行了后续更改,在我们的测试环境中工作,因此我认为这不是部署问题.
我想不出有任何理由会发生这种情况,除了可能的Windows Server(2008 R2)运行方式与我开发它的Windows 7不同,但这是一个延伸.
有没有人见过这个?
c# ×3
.net-4.0 ×2
tfs ×2
.net ×1
asp.net ×1
base64 ×1
c++ ×1
email ×1
events ×1
formatting ×1
gdi+ ×1
image ×1
javascript ×1
msbuild ×1
nullable ×1
properties ×1
refactoring ×1
silverlight ×1
tiff ×1
timespan ×1
web ×1
xaml ×1