小编Bra*_*son的帖子

NuGet:未添加运行时文件夹中的程序集的引用

我有一个针对两个不同操作系统/框架的项目:

  1. net461 在Windows和
  2. netcoreapp2.0 在OSX上

我正在试图弄清楚如何为NuGet正确打包它.根据这篇文章,我应该能够像这样打包它们:

/runtimes/win/lib/net461/myassembly.dll
/runtimes/osx/lib/netcoreapp2.0/myassembly.dll
Run Code Online (Sandbox Code Playgroud)

当我将NuGet包添加到另一个项目时,打包的程序集不会作为对目标项目的引用添加.

然后我在某处读到你还需要在/ref文件夹中添加引用库,所以我尝试了这个:

/runtimes/win/lib/net461/myassembly.dll
/runtimes/osx/lib/netcoreapp2.0/myassembly.dll
/ref/net461/myassembly.dll
/ref/netcoreapp2.0/myassembly.dll
Run Code Online (Sandbox Code Playgroud)

在这种情况下,程序集将作为对目标项目的引用添加,我可以构建它,但不会将所需的程序集复制到输出文件夹.

关于这一切的文件非常模糊,我很丢失.

我错过了什么?


相关NuGet问题:https://github.com/NuGet/Home/issues/7316


更新:我已经整理了一个示例项目,演示了我想要实现的目标.特别参见自述文件的底部,标题为"NuGet Packaging".

nuget

14
推荐指数
3
解决办法
3219
查看次数

在html页面中有多个ID是否可以接受?

Stack Overflow关于idvs 有很多问题,class但这些问题几乎总是与CSS有关 - 而且普遍接受的答案是使用类来设置特定元素集的样式,以及特定实例的ID.有道理,公平.

然而,我发现当我做越来越多的Javascript/jQuery/ajax时,这种方法开始变得不那么明确了,我发现语义元素应该被给予id的情况,但因为可能有多个实例我'我应该使用课程.

这是我的意思的一个例子:

看看Stack Overflow的降价问题编辑器上的工具栏 - 每个按钮都有一个唯一标识它的ID.有一个完美的意义 - 它是一个执行特定功能的按钮,并且可能有基于该id挂钩的脚本.

现在假设我正在构建一个富Web应用程序,并且有一个页面有两个选项卡,每个选项卡上都有一个markdown编辑器.这是否意味着工具栏按钮现在应该使用识别它们?

这似乎是错的.

另一个例子:我正在一个照片库网站上工作,每个照片上都有一个小工具栏.惯例说因为这些按钮有多个实例我应该使用类.真?

所以我的问题是......

  • 如果我在页面上犯了重复ID的罪行,哪些浏览器实际上会破坏?
  • 对于那些确实破坏的浏览器,它只是会破坏的CSS样式,还是jQuery选择器也会破坏.
  • 在所描述的情况下使用重复的ID真的很糟糕.

html jquery css-selectors

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

Visual Studio,Razor,BuildProviders和Intellisense

我试图让Intellisense在非ASP.NET项目中为剃刀视图工作,并希望了解VisualStudio的Razor编辑器和BuildProviders之间的关系.

作为背景,我正在Manos(单声道Web服务器)上编写一个框架,该框架使用Razor作为其视图引擎.我已经完成了那部分工作,但VS中的Intellisense不能提供从未知类型到未注册的构建提供程序的一系列错误,具体取决于项目的输出DLL放置的位置.

我的项目是.NET类库,带有.cshtml文件(构建操作无).基础剃刀视图类在单独的程序集(项目外部)中定义,该程序集可以在GAC中注册,但目前不是.

我已经读过这些文章了:

听起来我需要编写自己的BuildProvider,但找不到任何解释构建提供程序和razor intellisense之间关系的文档.

c# visual-studio-2010 buildprovider razor

11
推荐指数
1
解决办法
1733
查看次数

是什么决定iOS应用程序是否在iOS 7中获得新外观

iOS 7究竟使用什么来确定应用程序是应该使用传统的iOS 6风格UI(又称iOS6兼容模式)还是更新的iOS 7 UI来显示?

  • 如果我在Xcode 5中构建我们的应用程序,将基本SDK设置为7,我会按预期获得iOS 7 UI
  • 如果我在Xcode 5中构建我们的应用程序,将基本SDK设置为6,我仍然可以获得iOS 7 UI(意外,在真实设备和模拟器上发生)
  • 如果我在Xcode 4.x中构建,我会按预期获得较旧的UI

在所有情况下,部署目标都设置为5.

由于我们的应用程序具有相当自定义的UI,我们还没有准备好转向iOS 7的新外观.但是我们确实需要进行一些后端更改以支持我们现在需要发布的iOS 7.我们仍然可以提交使用Xcode 4.x构建的应用程序并期望它们被接受吗?

xcode ios ios7

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

在SQL Server CE中插入行并检索新行的标识

我正在尝试插入一行并使用以下内容返回新行的标识:

INSERT INTO blah....;
SELECT @@IDENTITY as NewID;
Run Code Online (Sandbox Code Playgroud)

我试图执行与在C#中的DbCommand对象的单个调用这两个语句......它似乎没有工作或我有什么不对.

我已经读过Compact Edition不支持批量执行多个语句......但我也发现了这个:

如果要同时运行多个查询,则必须为每个语句包含一个换行符,并在每个语句的末尾加一个分号.

来源:http://technet.microsoft.com/en-us/library/bb896140(SQL.110).aspx

它是否有效......如果是这样,我错过了什么?

(我意识到我可以执行两个命令并且工作正常,但我想知道我是否遗漏了某些东西).

sql-server identity sql-server-ce sql-server-ce-4

8
推荐指数
1
解决办法
5365
查看次数

IE的document.selection.createRange不包括前导或尾随空行

我正在尝试从textarea中提取确切的选择和光标位置.像往常一样,大多数浏览器中的简单操作都不在IE中.

我正在使用这个:

var sel=document.selection.createRange();
var temp=sel.duplicate();
temp.moveToElementText(textarea);
temp.setEndPoint("EndToEnd", sel);
selectionEnd = temp.text.length;
selectionStart = selectionEnd - sel.text.length;
Run Code Online (Sandbox Code Playgroud)

其中99%的时间都有效.问题是TextRange.text不返回前导或尾随换行符.因此,当光标在段落之后是几个空行时,它会在前一段的末尾产生一个位置 - 而不是实际的光标位置.

例如:

the quick brown fox|    <- above code thinks the cursor is here

|    <- when really it's here
Run Code Online (Sandbox Code Playgroud)

我能想到的唯一解决方法是在选择之前和之后临时插入一个字符,抓取实际选择,然后再次删除那些临时字符.这是一个黑客,但在一个快速实验看起来它会起作用.

但首先,我想确定没有更简单的方法.

javascript internet-explorer dom

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

C#中的快速字符串解析

在C#中解析字符串的最快方法是什么?

目前我只是使用字符串索引(string[index])并且代码运行合理,但我不禁想到索引访问器所做的连续范围检查必须添加一些内容.

所以,我想知道我应该考虑采用哪些技术来提升它.这些是我最初的想法/问题:

  1. 使用类似的方法string.IndexOf(),并IndexOfAny()找到感兴趣的字符.这些比手动扫描字符串更快string[index]吗?
  2. 使用正则表达式.就个人而言,我不喜欢正则表达式,因为我发现它们难以维护,但这些可能比手动扫描字符串更快吗?
  3. 使用不安全的代码和指针.这将消除索引范围检查,但我已经读过不安全的代码不会在不受信任的环境中运行.究竟是什么意思呢?这是否意味着整个程序集不会加载/运行,或只是标记为不安全的代码拒绝运行?该库可能会在许多环境中使用,因此能够回退到更慢但更兼容的模式会很不错.
  4. 我还能考虑什么?

注意:我应该说,我正在解析的字符串可能相当大(比如30k),而且是自定义格式,没有标准的.NET解析器.此外,这段代码的表现并不是非常关键,所以这部分只是好奇心的理论问题.

c# parsing

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

设置OpenID提供程序以进行测试

我正在开发一个使用OpenID进行身份验证的网站,但是工作正常...我经常在没有互联网连接的情况下工作.如果会话到期并且我需要再次登录,我再也无法连接.

我想做的是在本地IIS上设置一个非常愚蠢的OpenID提供程序,我可以在断开连接时使用它来登录.真的很愚蠢我的意思就是 - 它只需要是一个硬编码的URL,它作为openID提供者正确响应并允许登录.

我已经快速浏览了DotNetOpenAuth附带的OpenIdProviderMvc示例,但它没有开箱即用(无法解析程序集ApplicationServices).在深入挖掘之前,我认为有人可能已经完成了这个过程.

.net openid dotnetopenauth openid-provider

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

Android FragmentTab主机和片段内的片段

我有一个像这样的层次结构的app:

FragmentTabHost (Main Activity)
  - Fragment (tab 1 content - splitter view)
    - Fragment (lhs, list)
    - Framment (rhs, content view)
  - Fragment (tab 2 content)
  - Fragment (tab 2 content)
Run Code Online (Sandbox Code Playgroud)

所有片段视图都从资源中膨胀.

当应用程序启动时,一切都会显示,看起来很 当我从第一个选项卡切换到另一个选项卡并再次返回时,我试图重新创建选项卡1的视图时出现膨胀异常.

深入挖掘,这就是发生的事情:

  • 在第一次加载时,对分割器视图进行膨胀会导致其两个子片段被添加到片段管理器中.
  • 在切换远离第一个选项卡时,它的视图被销毁,但它的子片段留在片段管理器中
  • 在切换回第一个选项卡时,视图会重新膨胀,并且由于旧的子片段仍在片段管理器中,因此在实例化新的子片段时会抛出异常(通过膨胀)

我通过从片段管理器中删除子片段(我正在使用Mono)解决了这个问题,现在我可以切换标签而没有例外.

public override void OnDestroyView()
{
    var ft = FragmentManager.BeginTransaction();
    ft.Remove(FragmentManager.FindFragmentById(Resource.Id.ListFragment));
    ft.Remove(FragmentManager.FindFragmentById(Resource.Id.ContentFragment));
    ft.Commit();

    base.OnDestroyView();
}
Run Code Online (Sandbox Code Playgroud)

所以我有几个问题:

  1. 以上是正确的方法吗?
  2. 如果没有,我应该怎么做?
  3. 无论哪种方式,保存实例状态如何与所有这些相关联,以便在切换选项卡时不会丢失视图状态?

android xamarin.android android-tabhost android-fragments android-nested-fragment

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

如何在 .NET Core 3 项目中引用 UIAutomation 程序集

我正在研究需要引用 Microsoft UIAutomation 程序集的 netcore3.1 UI 工具包。UI 自动化概述页面(请参阅此处)指出:

UI 自动化在运行 .NET Framework 的受支持 Windows 操作系统上提供完整功能(请参阅 .NET Framework 系统要求或从 .NET Core 3.0 开始的 .NET Core 版本。

但我不知道如何从 netcoreapp3.1 项目中引用这些程序集。

我在我的本地驱动器中搜索了这些文件,它们似乎是这个 nuget 包的一部分,但是它的 nuget 页面显示:

内部实现包不适用于直接消费。请不要直接引用。

我如何引用这些程序集?


更新:我发现我可以通过以下方式获取对这些程序集的引用:

<ItemGroup>
  <FrameworkReference Include="Microsoft.WindowsDesktop.App" />
</ItemGroup>
Run Code Online (Sandbox Code Playgroud)

然而,这在几乎 300 个文件中带来了大约 140mb,涵盖了我不需要的各种东西。肯定有更好的方法吗?

c# ui-automation .net-core

6
推荐指数
0
解决办法
475
查看次数