我在最终用户机器上遇到装配解决问题,我相信它与使用便携式类库有关....
我有一个最初用Visual Studio 2010编写的.NET 4.0应用程序.最近我们升级到Visual Studio 2012,我们创建了一些可移植类库的项目.我不认为我们现在需要这些功能,但我们也在构建可能从这些库中受益的Windows 8 Store应用程序.
当我编译项目时,便携式库功能到底有什么作用?我希望它允许我在不修改或重新编译的情况下在不同的框架上运行它.
当我在反射器 dotPeek中查看库时,它将Platform属性显示为:
.NETPortable,版本= 4.0版,档案=规范5
参考文献似乎是2.0-ish:
mscorlib,版本= 2.0.5.0
系统,版本= 2.0.5.0
System.Runtime.Serialization,Version = 2.0.5.0
当我在这个最终用户的机器上运行应用程序时,我在日志文件中看到一个错误:
无法加载文件或程序集,'System.Core,Version = 2.0.5.0 ......'
谷歌搜索System.Core 2.0.5.0似乎是指SilverLight - 它似乎是目标框架之一.
本机没有安装Visual Studio,但有.NET 4.0(4.0.3更新)
有什么我应该做的不同编译,我应该调查我的依赖项或我应该在最终用户机器上安装的东西?2.0.5.0引用了什么?
我继承了一个使用MSBuild脚本编译多个解决方案的解决方案文件.大多数项目都配置了分析和规则集,我有一些单元测试项目没有.
打开分析的项目:
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|x86' ">
<DebugSymbols>true</DebugSymbols>
<DebugType>full</DebugType>
<DefineConstants>CODE_ANALYSIS;DEBUG;TRACE</DefineConstants>
<Optimize>false</Optimize>
<OutputPath>bin\Debug</OutputPath>
<PlatformTarget>x86</PlatformTarget>
<CodeAnalysisRuleSet>..\OurRules.ruleset</CodeAnalysisRuleSet>
<RunCodeAnalysis>true</RunCodeAnalysis>
</PropertyGroup>
Run Code Online (Sandbox Code Playgroud)
关闭分析的项目:
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|x86' ">
<DebugSymbols>true</DebugSymbols>
<DebugType>full</DebugType>
<DefineConstants>DEBUG;TRACE</DefineConstants>
<Optimize>false</Optimize>
<OutputPath>bin\Debug</OutputPath>
<PlatformTarget>x86</PlatformTarget>
<RunCodeAnalysis>false</RunCodeAnalysis>
</PropertyGroup>
Run Code Online (Sandbox Code Playgroud)
当我运行构建脚本时,看起来有些项目不尊重项目设置:
msbuild.exe BuildScript.proj /p:SolutionRoot=%cd%; /p:Configuration=Debug /p:Platform:x86 /p:RunCodeAnalysis=True
Run Code Online (Sandbox Code Playgroud)
当我检查输出文件夹时,我看到将RunCodeAnalysis标志设置为false的项目的覆盖率分析xml输出.有人能帮我理解这里发生了什么吗?
我正在使用Selenium为网站构建一些功能测试,并且我陷入了一个奇怪的浏览器问题,页面似乎永远不会完成加载.状态栏显示"从...传输数据"或"读取...".
由于页面永远不会完成加载,我的selenium测试超时.
这个问题似乎只发生在FireFox上. 我们的测试依靠FireFox*chrome来测试文件上传,因此FireFox对我们的测试策略至关重要.
我已经检查了FireBug和Fiddler,但我没有看到任何不完整的长期运行请求.所有请求都包含正常响应代码(无404错误).
我应该怎么看才能解决这个问题?
虽然解决这个星球的问题会很棒,但我只需要为我的测试解决问题.
如果它有帮助,它是一个基于MOSS的.NET 3.5解决方案,我们正在使用带有sifr的Flash.我们的标记是遗留的(它是一个MOSS站点)所以它的边缘有点粗糙.
我正在使用SharePoint Designer将asp服务器控件放入我的SharePoint XSLT中.我发现将值预先填充到表单中,或提供与SharePoint定义的布局(隐藏字段等)不同的体验非常方便.
例如,如果我这样定义它,我可以使用asp:TextBox控件而不是SharePoint:FormField控件:
<xsl:stylesheet ... xmlns:ddwrt="http://schemas.microsoft.com/WebParts/v2/DataView/runtime">
<xsl:param name="Name" />
<xsl:template match="/">
<!-- omitted for clarity -->
<asp:TextBox id="txtName" runat="server" Text="{$Name}"
__designer:bind="{ddwrt:DataBind('i','txtName','Text','TextChanged','ID',ddwrt:EscapeDelims(string(@ID)),'@MySharePointField')}"
</xsl:template>
</xsl:stylesheet>
Run Code Online (Sandbox Code Playgroud)
我用谷歌搜索但似乎无法找到ddwrt:DataBind方法的参数的良好参考.
有人知道吗?
假设我有一个具有只读属性的接口,以及一个具体的类,其中属性在构造函数中实例化并标记为只读.
internal interface IExample
{
ObservableCollection<string> Items { get; }
}
internal class Example : IExample
{
private readonly ObservableCollection<string> _items;
public Example()
{
_items = new ObservableCollection<string>();
}
public ObservableCollection<string> Items
{
get { return _items; }
}
}
Run Code Online (Sandbox Code Playgroud)
当我使用接口时,Resharper警告我在调用代码时可能有一个可能的空引用.
public class ExampleWithWarnings
{
public void Show()
{
IExample example = new Example();
// resharper warns about null reference
example.Items.Add( "test" );
}
}
Run Code Online (Sandbox Code Playgroud)
我意识到,根据定义,接口并不能保证属性具有值.(我也认识到接口上的属性并不理想).但我知道这个属性总会有价值.
是否有任何魔法属性可以放在界面上,以防止Resharper出现警告?我宁愿不必使用disable pragma警告来修饰类的所有用法.
我很惊讶地发现System.Diagnostics.Trace未包含在可移植类库配置文件中.但是,System.Diagnostics.Debug可用.
我正在将库移植到PCL,并且通常使用Trace语句为消费者提供额外的故障排除.出于性能原因,我希望对程序集进行优化,因此我只在NuGet包中发布程序集的Release版本.
我的理解是System.Diagnostics.Debug的方法是有条件编译的,因此仅在程序集包含DEBUG指令时才有用.
如果我更改我的代码以使用System.Diagnostics.Debug然后在Release中编译该方法是没用的 - 在PCL中是否有System.Diagnostics.Trace的替代方法,或者我是否必须在我的发布版本中包含DEBUG指令?或者我应该考虑另一种方法吗?
我试图阅读并理解jQuery的源代码.但我找不到有关下面部分的任何信息.我试图理解旁边的评论,但不能从中得到任何有用的意义.
if ( typeof module === "object" && module && typeof module.exports === "object" ) {
// Expose jQuery as module.exports in loaders that implement the Node
// module pattern (including browserify). Do not create the global, since
// the user will be storing it themselves locally, and globals are frowned
// upon in the Node module world.
module.exports = jQuery;
} else {
// Otherwise expose jQuery to the global object as usual
window.jQuery = window.$ = jQuery;
// …Run Code Online (Sandbox Code Playgroud) 我有一些单元测试,我正在为WPF应用程序编写,尽管我试图避免它,我有一些正在测试的代码实例化View.一旦实例化视图,就会评估所有标记扩展,样式等.为了解决这个问题,我在初始化测试程序集时创建了一个虚拟应用程序并注册了所有必需的资源:
[TestClass]
public class AssemblyInitialize
{
[AssemblyInitialize]
public static void SetupTestAssembly(TestContext context)
{
if (Application.Current == null)
new Application();
var resources = new List<string>
{
"pack://application:,,,/AssemblyName;component/ResourceDictionary.xaml"
};
foreach(var resource in resources)
{
var uri = new Uri(resource);
var dictionary = new ResourceDictionary { Source = uri };
Application.Current.Resources.MergedDictionaries.Add(dictionary);
}
}
}
Run Code Online (Sandbox Code Playgroud)
我过去曾经使用过这种方法,而且运行正常.
我用这种方法遇到了一个小麻烦.我有一些资源使用pack:// siteoforigin:在包Uri中,当测试实例化这个视图时,我收到一个关于无法解析文件的错误.
XAML:
<ResourceDictionary
xmlns="...">
<ImageBrush
x:Key="ResourceName"
ImageSource="pack://siteoforigin:,,,/Resources/image.png"
/>
</ResourceDictionary>
Run Code Online (Sandbox Code Playgroud)
错误信息:
Could not find a part of the path 'C:\\Solution\\TestResults\\Workspace_2012-03-01 14_54_29\\Resources\\image.png'
Run Code Online (Sandbox Code Playgroud)
我已将Resources目录添加为部署项,并且我已确认该图像是TestRun输出目录.似乎AppDomain在我的测试程序集的位置上方运行一个文件夹,因为该文件实际位于:
c:\ Solution\TestResults\Workspace_2012-03-01 …
有人可以用jQuery选择器告诉我.
我有一个HTML列表(见下文),里面有四个标志图像.当用户滚过例如意大利的旗帜时,我希望它将所有其他三个旗帜淡出为50%不透明度.
<ul id="flags">
<li id="German"><img src="images/flag_german.jpg" /></li>
<li id="Italian"><img src="images/flag_italian.jpg" /></li>
<li id="Spanish"><img src="images/flag_spanish.jpg" /></li>
<li id="French"><img src="images/flag_french.jpg" /></li>
</ul>
Run Code Online (Sandbox Code Playgroud) 我希望能够将文件夹的路径传递给应用程序,让程序运行该文件夹的整个内容,包括嵌套的文件夹和文件,删除它遇到的具有特定名称的任何文件夹.
我一直在寻找可能的方法,但我似乎找不到任何好的文档.
非常感谢帮助.
亲切的问候,
我正在尝试将Visual Studio代码覆盖文件(data.coverage)导出到xml中,如代码分析团队在此博客文章中所述.我已将该帖子中的代码示例移动到自定义MSBuild任务中.我的自定义任务引用位于Visual Studio的PrivateAssemblies文件夹中的Microsoft.VisualStudio.Coverage.Analysis.dll.
刚刚开始,尝试加载代码覆盖文件会引发代码分析类型异常ImageNotFoundException,指出" 无法找到图像文件完全限定文件路径到dll ".
// the following line throws an exception
CoverageInfo current =
CoverageInfo.CreateFromFile( "c:\path\testresults\x\y\z\data.coverage");
Run Code Online (Sandbox Code Playgroud)
路径是完全限定的,它所引用的DLL确实存在.我的testsettings将此文件列为仪器组件,并设置了"Instrument in place"复选框.我可以在Visual Studio中查看代码覆盖率,因此我知道覆盖范围正在发挥作用.
我正在从Visual Studio命令行运行我的MSBuild脚本.它看起来像这样:
<Project ToolsVersion="4.0" DefaultTargets="Default;"
xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<UsingTask TaskName="CustomTasks.MergeCoverageTask"
AssemblyFile="CustomTasks.dll"
/>
<Target Name="Default">
<ItemGroup>
<CoverageFiles Include="**\data.coverage" />
</ItemGroup>
<MergeCoverageTask
CoverageFiles="@(CoverageFiles)"
OutputFile="output.xml"
/>
</Target>
</Project>
Run Code Online (Sandbox Code Playgroud)
任何人都可以建议我需要做些什么才能使其正常工作?
c# ×3
.net ×2
jquery ×2
.net-4.0 ×1
asp.net ×1
firefox ×1
javascript ×1
mstest ×1
selenium ×1
sharepoint ×1
unit-testing ×1
wpf ×1
xslt ×1