小编Guy*_*ing的帖子

是否有一种简单的方法可以使Visual Studio 2015使用特定的ToolsVersion?

使用特定版本的msbuildI 构建项目或解决方案时,可以使用/toolsversion/tv切换选择较早的.net工具链:

"C:\Program Files (x86)\MSBuild\14.0\bin\msbuild" /tv:12.0 amazing.sln
Run Code Online (Sandbox Code Playgroud)

根据以上内容正确选择适用于所有版本的Just Works msbuild和版本csc.exe等:

> "C:\Program Files (x86)\MSBuild\14.0\bin\msbuild" /tv:4.0 amazing.sln
...
CoreCompile:
  C:\Windows\Microsoft.NET\Framework\v4.0.30319\Csc.exe ...
...

> "C:\Program Files (x86)\MSBuild\14.0\bin\msbuild" /tv:12.0 amazing.sln
...
CoreCompile:
  C:\Program Files (x86)\MSBuild\12.0\bin\Csc.exe ...
...
Run Code Online (Sandbox Code Playgroud)

如果我没有指定/tv,那么根据我正在使用的msbuild的版本和一些环境变量,我可能得到以下任何一个:

  • ToolsVersion在项目文件的顶级元素中指定
  • ToolsVersion对应于msbuild.exe我正在使用的版本
  • 来自的价值 msbuild.exe.config
  • 注册表中的值

(请参阅 MSDN上的Overriding ToolsVersion Settings页面不同版本).

因此,为了在构建服务器和本地机器上具有一致结果的构建,我/tv在运行时使用msbuild.exe(事实上​​,这是在psake脚本中强制执行的,这也确保它使用相应的版本msbuild.exe).

但是,/tv在使用Visual Studio构建时,我无法使用该开关.相反,Visual Studio 2013及更高版本将使用该版本的Visual …

.net c# msbuild visual-studio-2015

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

有没有一种标准方法可以在Heroku Cedar上的Rails 3.2中提供预先压缩的资产?

我有一个Rails 3.2应用程序,我正在Heroku Cedar堆栈上部署.这意味着应用程序本身负责提供其静态资产.我希望这些资产被gzip压缩,所以我插入Rack::Deflater到我的中间件堆栈中production.rb:

middleware.insert_after('Rack::Cache', Rack::Deflater)
Run Code Online (Sandbox Code Playgroud)

...并且curl告诉我这个广告的作用.

但是,由于Heroku将全力以赴地运行rake assets:precompile,生成一堆预先压缩的资产,我非常喜欢使用它们(而不是让Rack::Deflater所有的工作再次完成).我已经看到了使用nginx(没有在Heroku上使用)和CDN(不想使用CDN)的配方,但我还没有看到任何可以单独运行的东西.我已经将一个机架中间件一起攻击,但是我想知道这是否是最好的方法呢?

ruby gzip heroku asset-pipeline ruby-on-rails-3.2

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

为什么动态绑定会影响未来的身体?

我正在尝试重现 Chas 描述的动态变量的陷阱 - http://cemerick.com/2009/11/03/be-mindful-of-clojures-binding/

考虑以下片段:

(def ^:dynamic *dynamic-x* 10)

(defn adder [arg]
  (+ *dynamic-x* arg))

(adder 5) ;; returns 15

(binding [*dynamic-x* 20]
  (adder 5)) ;; returns 25

(binding [*dynamic-x* 20]
  @(future (adder 5))) ;; returns 25 (!)
Run Code Online (Sandbox Code Playgroud)

实际上,我期望一旦在单独的线程上执行添加并且*dynamic-x*应该使用当前线程本地值(我应该是 10),第三种情况将返回 15。但是,出乎我意料的是,它返回了 25。

我哪里错了?

future clojure dynamic-variables

4
推荐指数
1
解决办法
225
查看次数