问题标签 [multi-targeting]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
55 浏览

sitecore - Sitecore 6.6 发布到多个目标

目前正在开发一个运行 6.6 版的 sitecore 解决方案,我们遇到了一些奇怪的行为。该站点设置为具有多个目标,这些目标都指向网络服务器的各个数据库,例如 web1 - web3 等...我可以确认所有连接字符串都是正确的,并且网络服务器能够与 sitecore 进行通信厘米服务器。

通过大量阅读,我发现了 EnableEventQueues(http://www.sitecore.net/learn/blogs/technical-blogs/getting-to-know-sitecore/posts/2010/07/introducing-the-sitecore- event-queue.aspx),理论上应该可以解决这个问题,但是在所有 web 节点和 cms 服务器上启用了它仍然遇到问题。

我们的另一个理论是回收应用程序池以检查 sitecore 是否缓存了旧内容并等待一段时间来更新其缓存?然而,这似乎失败了,但将连接字符串指向一个工作然后工作,所以就像 sitecore 只将更改发布到几个选定的节点。

除非有任何其他需要启用的配置,否则我们目前对可能导致这种情况的原因保持不变?

ScalaabilitySettings.config 看起来像:

非常感谢,肖恩

0 投票
3 回答
3993 浏览

c# - 在 NuGet 中包含控制台应用程序的最佳实践

我正在开发一个开源库,它主要由一个面向 .NET Standard 2.0 的类库项目组成。最重要的是,我还实现了一个控制台应用程序,它是这个库的 CLI。控制台项目(出于历史原因)仅针对 .NET Framework 4.6.2。

现在我想知道为了让社区可以使用这个控制台应用程序,最佳实践是什么。在最广泛的层面上,我看到了两种可能性:

  1. 将控制台应用程序作为单独的 NuGet 交付。
  2. 在与类库相同的 NuGet 中发布控制台应用程序,因为它只是一个次要的附加组件,并不能证明自己的包是合理的。

从历史上看,我一直在使用第二种方法,但考虑到类库可以用于多目标场景,我不确定了。也许将控制台应用程序分离到自己的 NuGet 中会更干净,这样它对完整 .NET 框架的依赖就很清楚了。

无论哪种方式,我都想知道控制台 exe 在 NuGet 的文件结构中属于哪个位置。从历史上看,我一直把它放在下面,tools\net462但是关于这个页面tools上文件夹的评论让我不安全:

可从包管理器控制台访问的 Powershell 脚本和程序

我不一定想象有人使用包管理器控制台中的 CLI。相反,它会在某个外壳中用作独立的 exe。

0 投票
0 回答
207 浏览

c# - 无法在支持 Multi-Target 框架的项目上安装 System.Net.Http Nuget 包

我们正在.Net Framework 4 版本中开发一个.net 应用程序。然后我们决定将应用程序转换为多平台(net 40,net 45,net46,net47)

我们将应用程序转换为多目标平台并开始安装nuget包。我们注意到System.Net.Http包没有正确安装。

在 Net Framework 4 版本中,我们使用的是 System.Net.Http dll 的 2.0.20710 版本,并且应用程序运行正常。当我从 Nuget 购买并安装 System.Net.Http 包时,我看到该包只安装在 net40 版本的 Nuget 包下。Nuget包下没有安装其他版本

怎么安装System.Net.Http在 net45、net46 和 net47 版本中打包 Nuget 包?

0 投票
0 回答
331 浏览

.net - 针对 .NET Framework 4.6(或 net46)的项目实际上是 4.6.0 吗?

我最近在使用 Visual Studio 2017 以及 .NET Framework 项目、.NET Standard 项目以及为其中一个或两个构建的库之间的不同框架版本时遇到了很多麻烦。

其中一个问题是 .NET 标准库的目标是“net45;net46”,而一个项目的目标是 4.6.1 或 4.6.2。这存在构建问题,因此我将项目更改为以“4.6”为目标,这有效。

我的问题是,这实际上是否意味着 4.6.0 或 4.6.x(最新的或最旧的?)或“4.6”以某种方式逐字逐句?

0 投票
2 回答
1513 浏览

c# - 解决方案在 Visual Studio 中构建,但 Jenkins 引发资产异常

我有一个由单目标和多目标项目组成的解决方案。该解决方案可以毫无问题地在 Visual Studio 2017 和 Developer Command Prompt for VS 2017 中构建。
我通过以下代码在 VS 2017 的开发人员命令提示符中构建解决方案

我想在詹金斯做这个过程。然后我将以下命令添加到 Jenkins。

当我构建 Jenkins 项目时,它会引发异常。

非常感谢

0 投票
1 回答
1168 浏览

c# - 如何使用 WPF 控件多目标库项目

我有一个需要针对 .NET 3.5 和 .NET 4.0 的类库项目,现在完成的方式是为每个目标框架创建单独的项目并将每个项目中的文件链接到同一源的典型方式。

我想利用 .NET Core 项目中出现的新 csproj 格式,因为新 csproj 格式的多目标更简单。

我创建了一个新的类库 (.NET Core) 项目并开始尝试移植我现有的库。

我真的不需要定位.netcoreapp2.0,所以我的目标框架看起来像这样

我有以下代码块来帮助解决.NET 3.5新 csproj 格式的奇怪问题。

到目前为止,一切都很好。事情开始走下坡路的地方是我的类库有 WPF 控件。我收到编译错误,因为它找不到System.Windows和其他 WPF 相关的项目。

我发现我可以添加对其他 Windows 程序集的引用,所以我添加了以下内容

这消除了我的大部分错误,但现在我遇到了类似的错误The name 'InitializeComponent' does not exist in the current context

0 投票
1 回答
1080 浏览

msbuild - 如何在多目标项目中只调用一次所有构建之前的脚本

我想在构建过程之前只运行一次我的 powershell 脚本。在我看来,这应该很容易完成,只需在 PreBuildEvent 之前调用脚本就可以了。好吧,它确实适用于正常项目。

但是,对于多目标项目,脚本会在每次构建之前为所有目标框架调用多次。

这是我的项目文件,我在其中针对 3 个框架:

当我构建项目时,PreBuild 目标被调用了 3 次。

到目前为止,我已经尝试过:

1) 起初,我猜测构建是按顺序进行的,所以我在目标中添加了一个条件:

,这不起作用。事实证明,多目标构建是同时进行的。有时,net40 的构建会更晚,所以我的脚本在所有构建之前都没有运行。

2)然后我尝试使用环境变量进行同步,但也没有成功。似乎构建没有共享环境变量。

3)最后,我转向其他MSBuild目标来替换PreBuildEvent,但我没有找到合适的目标。

那么如何在所有构建之前调用我的脚本,并且在多目标项目中只调用一次。请帮我。

0 投票
1 回答
261 浏览

c# - 多目标 net461 和 netstandard - 即使在 net461 消费者中也需要 netstandard 依赖项

net461我正在开发一个我已经多目标的类库netstandard2.0

这个类库的依赖项之一是Microsoft.ApplicationInsights

当它仅针对net461时,我可以Microsoft.ApplicationInsights通过包管理器控制台或 nuget ui 添加对 (v2.4.0) 的引用,它会将自身添加为依赖项。

一旦我对 csproj 进行了多目标处理:

...如果我尝试添加参考,它会要求我接受许多依赖项的许可协议。当然,我这样做是妥当的。

当我将这个类库打包为 nuget 包时,我的问题就出现了。

即使我的消费应用程序以 netstandard 为目标net461,当我安装此软件包时,系统也会提示我安装所有 netstandard 依赖项——即使我的消费应用程序不以 netstandard 为目标。

有没有办法阻止我的net461目标包需要所有依赖项netstandard

0 投票
2 回答
662 浏览

c# - 如何创建一个多目标但针对每个框架的不同 dll 的 .NET Core 库?

我正在尝试将当前针对 .NET4.0 的库更新为:

  • 网络标准 2.0
  • NET4.5.2

使用多目标。

我正在使用的依赖库是Microsoft.Build.Framework. 它可以在两个地方找到:

  • NuGet最低级别为 NET4.6
  • GAC 通过完整框架(例如C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.0\Microsoft.Build.Framework.dll

因为nuget包最低级别在4.5.2以上,所以不能在452目标中使用那个nuget包。

那么,是否可以说: - 使用 NS20 时,请使用 nuget 包。- 使用NET4.5.2时,请使用GAC版本。

谢谢!