GVKun编程网logo

适用于.NET的Python:在多个版本中使用相同的.NET程序集(.net调用python)

14

如果您对适用于.NET的Python:在多个版本中使用相同的.NET程序集感兴趣,那么本文将是一篇不错的选择,我们将为您详在本文中,您将会了解到关于适用于.NET的Python:在多个版本中使用相同的

如果您对适用于.NET的Python:在多个版本中使用相同的.NET程序集感兴趣,那么本文将是一篇不错的选择,我们将为您详在本文中,您将会了解到关于适用于.NET的Python:在多个版本中使用相同的.NET程序集的详细内容,我们还将为您解答.net调用python的相关问题,并且为您提供关于.net – 为什么不同版本的Silverlight程序集具有相同的版本号?、.net – 在多个项目中使用相同的模块、17、【Python】mac安装多个版本的python、Android-可以在多个帐户中使用相同的密钥库文件发布不同的应用程序吗?的有价值信息。

本文目录一览:

适用于.NET的Python:在多个版本中使用相同的.NET程序集(.net调用python)

适用于.NET的Python:在多个版本中使用相同的.NET程序集(.net调用python)

我的问题:我有2个版本的程序集,并希望在我的Python项目中同时使用它们。

.NET库安装在GAC(MSIL)中,具有相同的公共令牌:

lib.dll (1.0.0.0)
lib.dll (2.0.0.0)

在Python中,我想要这样的东西:

import clr
clr.AddReference("lib,Version=1.0.0.0,...")
from lib import Class
myClass1 = Class()
myClass1.Operation()

*magic*

clr.AddReference("lib,Version=2.0.0.0,...")
from lib import class
myClass2 = Class()
myClass2.Operation()
myClass2.OperationFromVersion2()

*other stuff*

# both objects should be accessibly
myClass1.Operation() 
myClass2.OperationFromVersion2()

有没有办法做到这一点?有AppDomains或bindingRedirect吗?

注意:当然,myClass1.operationFromVersion2()可能会失败…

.net – 为什么不同版本的Silverlight程序集具有相同的版本号?

.net – 为什么不同版本的Silverlight程序集具有相同的版本号?

为什么不同版本的Silverlight程序集具有相同的版本号?

Location: ...\Silverlight\v3.0\System.Core.dll 
Name: System.Core,Version=2.0.5.0,Culture=neutral,PublicKeyToken=7cec85d7bea7798e 

Location: ...\Silverlight\v4.0\System.Core.dll 
Name: System.Core,PublicKeyToken=7cec85d7bea7798e 

Location: ...\Silverlight\v4.0\Profile\WindowsPhone\System.Core.dll 
Name: System.Core,PublicKeyToken=7cec85d7bea7798e

虽然标准的.net有不同的版本号

Location: ...\Framework\v4.0.30319\System.dll 
Name: System,Version=4.0.0.0,PublicKeyToken=b77a5c561934e089 

Location: ...\Framework\v2.0.50727\System.dll 
Name: System,Version=2.0.0.0,PublicKeyToken=b77a5c561934e089

解决方法

使用.NET,对于已签名(.snk)程序集,您不会更改程序集版本号的第一个原因是确保程序集的强名称保持不变.这样一来,不用混淆.config文件或自定义策略,任何使用引用程序集构建的客户端仍然能够加载而不会抱怨.

默认情况下(不定义assemblies redirections),如果更改版本,您的程序集的强名称也将被更改,并且所有现有的程序集根据以前的版本构建将无法运行.

如果您从不更改版本,那么您必须确保不会使用不同的类或方法签名来破坏相同的客户端.

这就是为什么大多数时候,开发人员倾向于保持相同的版本…永远,当有可能时,这对于CoreCLR(Silverlight的CLR)以及.NET CLR是正确的.

在.NET CLR的情况下,他们更改版本的事实实际上为现有的.NET应用程序带来了一些问题.有时,现有的.NET 2应用程序需要将它添加到.NET 4上下文中的.config文件中:

<configuration>
  <startup>
    <supportedRuntime version="v4.0.30319" />
  </startup>
</configuration>

你可以看一下这篇文章,解释这一切如何复杂在幕后:Version Compatibility in the .NET Framework

.net – 在多个项目中使用相同的模块

.net – 在多个项目中使用相同的模块

我正在使用Visual Studio 2010并在VB.NET中编码.

我的问题是我已经收集了我编写的所有模块并打算重用它们并将它们放在一个单独的文件夹中.
当我想将上述文件夹中的模块添加到任何给定项目时,它会获取模块的副本并放置在项目的源代码文件夹中,而不是引用包含所有其他模块的文件夹中的模块.

是否可以在我的项目中包含一个模块并将其保存在包含所有其他模块的文件夹中,这样当我改进模块时,它将影响使用/引用该模块的所有项目.而不是我必须手动将新模块复制到使用/引用模块的所有项目.现在我有多个完全相同模块的实例,当我改进代码或添加功能时,我需要手动更新?

在尝试最小化代码重复方面,你肯定是在正确的轨道上!您要做的最好的事情是将代码编译成可重用的类库,您可以在多个项目中使用它.

>在Visual Studio中创建一个新的“类库”项目.
>将所有模块移动到该项目中.
>编译该项目,并记下生成的DLL文件的位置.
>将该DLL文件的引用添加到您希望能够调用模块公开的方法的每个其他项目中.

将此单个代码文件添加到每个项目的方法的好处是,如果您更新或修改类库中的代码,您只需重新编译类库即可.

此外,如果您计划部署依赖于相同模块的多个不同应用程序,这将允许它们中的每一个动态调用作为类库的一部分公开的方法.

17、【Python】mac安装多个版本的python

17、【Python】mac安装多个版本的python

问题由来:

       Mac OS 自带的 python 版本是2.x,自己开发需要 python 3.x,但有担心卸载系统自带的 python2.x 会造成系统的不稳定。因此,需要在系统中安装多个版本的 python,pyenv 就是这样一个 python 版本管理器。

 

具体的安装过程如下:

 

1、安装 homebrew

如何安装 homebrew

 

2、安装 pyenv

      使用 homebrew 安装 pyenv,Mac 下在那装了 homebrew 之后使用 homebrew 安装 pyenv。

1 brew update
2 brew install pyenv
3 brew upgrade pyenv #之后如果需要更新 pyenv

在安装成功之后,在.bashrc 或 bash_profile 中添加以下几条语句来开启自动补全。

1 export PATH="$HOME/.pyenv/bin:$PATH"
2 eval "$(pyenv init -)"
3 eval "$(pyenv virtualenv-init -)"

需要注意的是:如果在/home/usrername/目录下没有找到 .bashrc 或 .bash_profile 文件,则自己新建一个并在其中添加上面的内容。

 

3、pyenv常用命令

使用 pyenv commands 可以查看所有的 pyenv 命令。

(1)查看已安装的 python 版本

1 $ pyenv versions
2 
3   system
4 
5 * 3.6.4 (set by /Users/didi/.pyenv/version)

此处带*号的是当前路径下所使用的 python 版本。

 

  (2)查看可安装的 python 版本

 1 $pyenv install -l
 2 Available versions:
 3   2.1.3
 4   2.2.3
 5   2.3.7
 6   2.4
 7   2.4.1
 8   2.4.2
 9   2.4.3
10   2.4.4
11   2.4.5
12   2.4.6
13   2.5
14   2.5.1
15   2.5.2
16   2.5.3
17   2.5.4
18   2.5.5
19   2.5.6
20   2.6.6
21   2.6.7
22   2.6.8
23   2.6.9
24   2.7-dev
25   2.7
26   2.7.1
27   2.7.2
28   2.7.3
29   …………

 

(3)安装 python

1 $ pyenv install <version> #version 为版本号

 

(4)python 版本管理

1 pyenv global <version>  # 全局设置python版本为指定版本,设置全局的 Python 版本,通过将版本号写入 ~/.pyenv/version 文件的方式。

2 pyenv local <version> # 设置当前路径下python版本为指定版本,设置 Python 本地版本,通过将版本号写入当前目录下的 .python-version 文件的方式。通过这种方式设置的 Python 版本优先级较 global 高。

3 pyenv shell <version> # 设置当前shell窗口使用的python版本为指定版本,设置面向 shell 的 Python 版本,通过设置当前 shell 的 PYENV_VERSION 环境变量的方式。这个版本的优先级比 local 和 global 都要高。–unset 参数可以用于取消当前 shell 设定的版本。

 

使用pyenv切换Python 版本之后可以通过which python或者是python --version来查看是否生效。

 

(5)python 卸载

1 pyenv isntall <version> # 安装版本号为<version>的Python
2 
3 pyenv uninstall <version> #卸载版本号为<version>的Python

 

更多详细信息参见:https://www.jianshu.com/p/2b0b652eaa50

 

 

 

Android-可以在多个帐户中使用相同的密钥库文件发布不同的应用程序吗?

Android-可以在多个帐户中使用相同的密钥库文件发布不同的应用程序吗?

我已经在Client中上传了签名apk文件。现在,我从同一个客户端使用另一个开发者帐户使用了另一个应用程序。我可以上传带有相同文件的签名文件,还是可以使用新文件?请帮我…keystore``DeveloperAccount``apk``keystore``keystore

答案1

小编典典

密钥存储区具有一系列数字证书,这些数字证书对于发布者是唯一的,例如您的签名。它们用于验证Apps是否来自真实来源。

软件包名称+签名组合必须唯一,即一个应用不能有多个官方发行者:

  1. 设备不会使用不同的签名更新同一App包。
  2. Play商店不允许您使用不同的签名更新相同的包文件。

但是发布者可以发布多个应用程序:

  1. 设备可以具有许多具有不同程序包名称但签名相同的应用程序。
  2. Play商店可以托管许多具有不同包装但签名相同的应用。

除此之外,每个Play商店帐户都会获得一个唯一的许可证密钥,与签名不同,该密钥与帐户绑定。对于从其他帐户发布的应用程序,您不能使用一个帐户的许可证密钥。

就Google政策而言,我认为目前为止每个开发者帐户都没有限制1个签名。

今天关于适用于.NET的Python:在多个版本中使用相同的.NET程序集.net调用python的讲解已经结束,谢谢您的阅读,如果想了解更多关于.net – 为什么不同版本的Silverlight程序集具有相同的版本号?、.net – 在多个项目中使用相同的模块、17、【Python】mac安装多个版本的python、Android-可以在多个帐户中使用相同的密钥库文件发布不同的应用程序吗?的相关知识,请在本站搜索。

本文标签: